Player-by-player trace from JSON pipeline. Metric-by-metric comparison without wide horizontal table dependency.
Windows shown explicitly: newly generated team recent form targets the latest 10 games; each game below shows the window actually stored in its artifact. Player historical helpers = 75 games; balancing rates = 162 games.
Savant layers shown explicitly: hitter Statcast quality, pitcher Statcast quality, and pitch movement from embedded data/all_players_stats.csv features.
Color guide: Red = final above baseline, Blue = final below baseline, Green = no difference.
| Layer | Score | Winner | Confidence | Source or usage | Synced or matches |
|---|---|---|---|---|---|
| Shipped prediction | LAD 4 - 3 ATL | LAD | 0.505 | enhanced_prediction.pre_simulation_target | True |
| Simulation draw | LAD 4 - 3 ATL | LAD | - | organic_simulation_realized_target | True |
The shipped score is reconciled to the final simulation score. The original model target remains visible as the pre-simulation audit layer.
This table distinguishes newly generated artifacts from older files. Missing trace data is shown as legacy/unavailable, never inferred.
| Priority | Change | Runtime status | Evidence |
|---|---|---|---|
| P1 | Empirical confidence blend | applied | raw=0.5101; empirical=0.5477; weight=0.5000; final=0.5289 |
| P1 | H2H margin as base feature | available | home net=13; abs=13; home delta=0.0750; away delta=-0.0750 |
| P2 | Wider score distribution | implemented_above_requested_1.4x | variance multiplier=2.2500; floor=2.7500 |
| P2 | Simulation flip control | diagnostic_only_unless_independently_supported | candidate=False; trusted=False; published flip=False |
| P3 | Season edge + recent form | implemented | window=10; season edge=-0.5802; recent edge=-0.6640; blended=- |
| P3 | Continuous calibration audit | trace emitted | Checked by CONFIDENCE_CALIBRATION_APPLIED and bucket_calibration_error in learning reports. |
| Process Layer | What It Does | Stored Field | Observed Value |
|---|---|---|---|
| 1. Historical model | Starts from trained game model output. | score_evolution.steps[historical_ml] | - |
| 2. Variance layer | Applies bounded game variance before enhanced corrections. | score_evolution.steps[variance_applied] | - |
| 3. Recent/team form | Uses latest team form, recent scoring, prevention, and streak state. | enhanced_prediction_analysis.recent_form | True |
| 4. Season quality | Uses season run differential and record quality guardrails. | season_run_differential_adjustment, season_quality_guardrail | True |
| 5. Savant hitters | Applies lineup-level Statcast xwOBA, xBA, xSLG, barrel, hard-hit, sweet-spot, EV, launch-angle, whiff, K and BB quality. | savant_batter_quality_adjustment | True |
| 6. Savant pitchers | Applies starter run prevention, strikeout, walk, HR and regression factors from xwOBA, wOBA, contact quality and whiff/command. | savant_pitcher_quality_adjustment | True |
| 7. Low-score analysis | Controls unrealistic totals and preserves the pre-sync low-score expected total. | low_score_analysis | 6.4000 |
| 8. Probability/governors | Applies win probability calibration, matchup guardrails, margin governor and confidence governor. | win_probability_calibration, margin_governor, confidence_governor | 0.5052 |
| 9. Simulation reconciliation | Reconciles final shipped score with the simulation box score while retaining the pre-simulation target. | simulation_reconciliation | organic_simulation_realized_target |
| 10. Score evolution rendered | 8 stored score steps are rendered below. | game.score_evolution.steps | true |
| Step | Layer | Away Runs | Home Runs | Confidence | Description |
|---|---|---|---|---|---|
| 1 | historical_ml | 3.807 | 4.634 | - | Base ML historical model prediction |
| 2 | variance_applied | 4 | 5 | - | Deterministic baseline target (variance factor 1.0) |
| 3 | enhanced_prediction | 4 | 3 | 0.5052 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| 4 | kpi_layer | 4 | 3 | - | Savant KPI blend applied to the model target |
| 5 | embedded_savant_run_environment | 4 | 3 | - | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| 6 | fundamental_edge_target_review | 4 | 3 | - | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| 7 | capped_target | 4 | 3 | - | Capped at max 12 realistic runs |
| 8 | simulation_result | 4 | 3 | - | Final inning-by-inning simulation result |
{
"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"
}{
"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
}{
"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"
}{
"method": "h2h_net_margin_monotonic_v1",
"available": true,
"sample_size": 5,
"sample_weight": 0.0577,
"home_net_margin": 13.0,
"absolute_net_margin": 13.0,
"home_average_margin": 2.6,
"home_run_delta": 0.075,
"away_run_delta": -0.075,
"evidence": [
{
"game_id": null,
"home_margin": 1.0
},
{
"game_id": null,
"home_margin": 1.0
},
{
"game_id": null,
"home_margin": 1.0
},
{
"game_id": null,
"home_margin": 5.0
},
{
"game_id": null,
"home_margin": 5.0
}
],
"adaptive_parameters": {
"h2h.history_limit": 5,
"h2h.maximum_weight": 0.15,
"h2h.prior_games": 8.0,
"h2h.maximum_total_shift": 0.65
}
}{
"applied": true,
"home": {
"team": "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
}
}{
"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"
}{
"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"
}{
"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
}
}
}{
"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"
}{
"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
}
}{
"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"
}
}{
"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"
}
}
}Source: data/all_players_stats.csv embedded Savant hitter features. It adjusts team offense through expected production and contact quality, then records coverage so missing hitters are visible.
| Team | Applied | Offense Factor | Raw Avg Factor | Coverage Weight | Covered | Missing |
|---|---|---|---|---|---|---|
| Away LAD | True | 1.0622 | 1.0622 | 1 | 9 | 0 |
| Home ATL | True | 1.0332 | 1.0332 | 1 | 9 | 0 |
| Pos | Player | ESPN Rank | Off Factor | Quality | Regression | xwOBA | xBA | xSLG | Barrel% | HardHit% | EV | LA | Whiff% | K% | BB% | Regression Edge |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SS | Mookie Betts | - | 1.0592 | 0.7895 | neutral | 0.3390 | 0.2780 | 0.4350 | 7.80 | 38 | 90.20 | 17.90 | 12.50 | 11 | 8.90 | 0.0286 |
| 1B | Freddie Freeman | - | 1.0846 | 1.1277 | neutral | 0.3630 | 0.2900 | 0.4630 | 8.10 | 41.30 | 89.50 | 12.20 | 23.20 | 17.70 | 10 | 0.4286 |
| LF | Teoscar Hernández | - | 1.0522 | 0.6961 | neutral | 0.3320 | 0.2560 | 0.4370 | 10.70 | 44.80 | 90.30 | 13.90 | 32.60 | 27.50 | 8.60 | 0 |
| C | Will Smith | - | 1.1236 | 1.6486 | positive_batter_regression | 0.3890 | 0.2790 | 0.5020 | 12.40 | 41.20 | 89.10 | 20.10 | 16.70 | 16.30 | 12.30 | 1.2571 |
| DH | Shohei Ohtani | - | 1.1401 | 1.8682 | neutral | 0.3970 | 0.2860 | 0.5520 | 16.40 | 52.10 | 93.30 | 12.30 | 31.70 | 24.60 | 13.10 | 0.5714 |
| 2B | Miguel Rojas | - | 1.0168 | 0.2244 | neutral | 0.3090 | 0.2770 | 0.3860 | 4.80 | 36.20 | 87.30 | 14.60 | 17 | 10.70 | 6.30 | 0.0857 |
| CF | Andy Pages | - | 1.0550 | 0.7337 | neutral | 0.3430 | 0.2740 | 0.4420 | 7.90 | 42.30 | 88.90 | 15.70 | 22.10 | 19.70 | 8.50 | -0.2571 |
| RF | Kyle Tucker | - | 1.0358 | 0.4771 | neutral | 0.3310 | 0.2560 | 0.3930 | 6.40 | 36.30 | 88.50 | 18.10 | 20.80 | 16.70 | 12.40 | 0.3714 |
| 3B | Enrique Hernández | - | 0.9921 | -0.1058 | neutral | 0.2790 | 0.2200 | 0.3670 | 8.10 | 40.30 | 89 | 10.90 | 25 | 29.20 | 6.30 | -0.4000 |
| Pos | Player | ESPN Rank | Off Factor | Quality | Regression | xwOBA | xBA | xSLG | Barrel% | HardHit% | EV | LA | Whiff% | K% | BB% | Regression Edge |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| C | Drake Baldwin | - | 1.1093 | 1.4576 | neutral | 0.3700 | 0.2790 | 0.5050 | 12.90 | 50.60 | 91.50 | 11 | 24.40 | 21.50 | 8.90 | 0.3429 |
| DH | Ronald Acuña Jr. | - | 1.0946 | 1.2607 | neutral | 0.3660 | 0.2610 | 0.4950 | 13 | 43.50 | 89.60 | 15.70 | 29 | 22 | 11.30 | 0.5143 |
| 1B | Matt Olson | - | 1.0899 | 1.1980 | neutral | 0.3510 | 0.2470 | 0.5030 | 14.20 | 52 | 92.50 | 18.10 | 25.40 | 24.50 | 9.20 | 0 |
| 2B | Ozzie Albies | - | 0.9552 | -0.5967 | neutral | 0.2730 | 0.2210 | 0.3370 | 3.80 | 27.70 | 87.10 | 17.80 | 21.20 | 15.40 | 6.70 | -0.7143 |
| CF | Michael Harris II | - | 1.0702 | 0.9360 | neutral | 0.3420 | 0.2900 | 0.4770 | 10.30 | 47.60 | 90.50 | 10 | 24.60 | 19.20 | 3.70 | -0.2000 |
| LF | Mauricio Dubón | - | 0.9974 | -0.0343 | neutral | 0.3040 | 0.2680 | 0.3750 | 4 | 29.40 | 86.50 | 16.10 | 15.30 | 11.80 | 5.70 | -0.3714 |
| RF | Lane Thomas | - | 1.0155 | 0.2061 | neutral | 0.3110 | 0.2380 | 0.3650 | 6.40 | 40.90 | 89.30 | 17.40 | 22.90 | 24.90 | 11.80 | -0.0571 |
| 3B | Austin Riley | - | 1.0239 | 0.3191 | neutral | 0.2990 | 0.2130 | 0.3960 | 12.40 | 44.30 | 91.30 | 18.50 | 31.90 | 31.90 | 7.60 | 0.2571 |
| SS | Ha-Seong Kim | - | 0.9432 | -0.7574 | positive_batter_regression | 0.2220 | 0.1570 | 0.2060 | 2.20 | 25 | 85.90 | 19.90 | 20.20 | 25.90 | 10.90 | 1.2000 |
{
"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"
}Source: data/all_players_stats.csv embedded Savant pitcher and movement features. Starter quality modifies opposing run scoring and pitcher strikeout/walk/homer expectations.
| Team | Pitcher | Available | ESPN Rank | Quality | Sample Wt | Run Prev | K Factor | BB Factor | HR Factor | Regression | xwOBA | wOBA | K% | BB% | Whiff% | Barrel% | HardHit% |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Away LAD | Yoshinobu Yamamoto | True | - | 0.6349 | 1 | 0.9460 | 1.0360 | 0.9340 | 0.9344 | neutral | 0.2660 | 0.2420 | 25.70 | 5.90 | 27.90 | 6.50 | 35.50 |
| Home ATL | Chris Sale | True | - | 0.7139 | 1 | 0.9393 | 1.0800 | 0.9120 | 0.9277 | neutral | 0.2670 | 0.2590 | 30.90 | 4.80 | 30.40 | 6.20 | 35.10 |
| Team | Pitcher | Movement Available | Primary Pitch | Pitches | Velo | Spin | Axis | HB | IVB | Drop | Rel X | Rel Z | Extension | Arm Angle | Movement Score |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Away LAD | Yoshinobu Yamamoto | True | None | 98 | 91.06 | 2177 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0672 |
| Home ATL | Chris Sale | True | None | 102 | 88.69 | 2357 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | -0.0655 |
| Run Factor | Value |
|---|---|
| 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.9460 |
| home_pitcher_workload_share | 0.7037 |
| away_pitcher_workload_share | 0.7407 |
| home_pitcher_quality_edge | 0.0321 |
{
"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 | Last-10 W-L | Win % | R/G | RA/G | Run Diff | Streak | Offense | Defense |
|---|---|---|---|---|---|---|---|---|
| Away LAD | 8-2 | 0.800 | 5 | 2.20 | 28 | 3W | average | strong |
| Home ATL | 5-5 | 0.500 | 4 | 3.90 | 1 | 1L | average | average |
| Team | Record | Win % | Run Diff | RD/Game | Available |
|---|---|---|---|---|---|
| Away LAD | 100-62 | 0.617 | 201 | 1.241 | True |
| Home ATL | 94-68 | 0.580 | 116 | 0.716 | True |
| Signal | - | - | -0.525 | -0.610 | applied=True |
| Date | Matchup | Score | Winner | Margin | Type |
|---|---|---|---|---|---|
| 2026-08-27 | LAD @ ATL | 0 - 1 | ATL | 1 | close |
| 2026-08-26 | LAD @ ATL | 5 - 6 | ATL | 1 | close |
| 2026-08-25 | LAD @ ATL | 3 - 4 | ATL | 1 | close |
| 2026-05-10 | ATL @ LAD | 7 - 2 | ATL | 5 | blowout |
| 2026-05-09 | ATL @ LAD | 7 - 2 | ATL | 5 | blowout |
| Layer | AB | H | R | HR | RBI | BB | SO |
|---|---|---|---|---|---|---|---|
| Game target LAD | - | - | 4 | - | - | - | - |
| Game target ATL | - | - | 3 | - | - | - | - |
| Player finalized LAD | 41 | 9 | 4 | 1 | 3 | 1 | 7 |
| Player finalized ATL | 35 | 6 | 3 | 1 | 3 | 2 | 7 |
| Player model fractional LAD | 32.26 | 7.28 | 4.39 | 1.35 | 4.04 | 2.74 | 8.33 |
| Player model fractional ATL | 33.73 | 6.50 | 3.98 | 1.21 | 3.98 | 2.75 | 8.48 |
| Simulation box LAD | 41 | 9 | 4 | 1 | 3 | 1 | 7 |
| Simulation box ATL | 35 | 6 | 3 | 1 | 3 | 2 | 7 |
If player finalized rows and game target disagree, the report now exposes that gap instead of hiding it. Fractional model rows show the unrounded prop layer before box-score realization.
| Team | Role | Pitcher | Pre IP | Pre ER | Pre SO | Pre H | Pre BB | Weighted ERA | Weighted WHIP | Box Sync |
|---|---|---|---|---|---|---|---|---|---|---|
| Away LAD | Starter | Yoshinobu Yamamoto | 6.10 | 1 | 4 | 3 | 1 | 2.57 | 0.90 | True |
| Away LAD | Middle Reliever | Brock Stewart | 1 | 1 | 0 | 1 | 0 | 3.45 | 1.09 | True |
| Away LAD | Middle Reliever | Evan Phillips | 0.20 | 1 | 1 | 1 | 0 | 3.54 | 1.01 | True |
| Away LAD | Middle Reliever (High Leverage) | Alex Vesia | 2 | 0 | 2 | 1 | 1 | 1.71 | 0.69 | True |
| Home ATL | Starter | Chris Sale | 6 | 2 | 5 | 6 | 1 | 2.92 | 0.93 | True |
| Home ATL | Middle Reliever | Dylan Dodd | 1 | 0 | 0 | 1 | 0 | 3.84 | 1.00 | True |
| Home ATL | Middle Reliever (High Leverage) | Robert Suarez | 1 | 0 | 0 | 1 | 0 | 3.32 | 1.23 | True |
| Home ATL | Middle Reliever (High Leverage) | Dylan Lee | 2 | 0 | 2 | 1 | 0 | 5.18 | 1.36 | True |
| Side | Team | Role | Pos | Player | Dominant | Changed | Boosted | Deboosted | Better | Worse | Largest Metric | Largest Delta | Direction | Effect |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| away | LAD | pitcher | Starter | Yoshinobu Yamamoto | better | 5 | 0 | 5 | 3 | 2 | predicted_H | -3.0000 | deboost | better |
| away | LAD | batter | 2B | Miguel Rojas | worse | 11 | 4 | 7 | 3 | 8 | predicted_AB | 2.5000 | boost | better |
| home | ATL | pitcher | Starter | Chris Sale | worse | 4 | 1 | 3 | 1 | 3 | predicted_H | 2.0000 | boost | worse |
| home | ATL | batter | 3B | Austin Riley | worse | 12 | 3 | 9 | 4 | 8 | predicted_BB | 1.6870 | boost | better |
| away | LAD | batter | 3B | Enrique Hernández | better | 11 | 9 | 2 | 8 | 3 | predicted_AB | 1.5000 | boost | better |
| home | ATL | batter | CF | Michael Harris II | worse | 12 | 2 | 10 | 1 | 11 | predicted_AB | -1.4400 | deboost | worse |
| home | ATL | batter | 1B | Matt Olson | better | 10 | 7 | 3 | 8 | 2 | predicted_RBI | 1.3600 | boost | better |
| away | LAD | pitcher | Middle Reliever (High Leverage) | Alex Vesia | worse | 3 | 3 | 0 | 1 | 2 | predicted_IP | 1.3333 | boost | better |
| home | ATL | pitcher | Middle Reliever (High Leverage) | Dylan Lee | better | 3 | 1 | 2 | 3 | 0 | predicted_IP | 1.3333 | boost | better |
| away | LAD | batter | 1B | Freddie Freeman | worse | 11 | 2 | 9 | 1 | 10 | predicted_SO | 1.2530 | boost | worse |
| home | ATL | batter | DH | Ronald Acuña Jr. | worse | 12 | 2 | 10 | 1 | 11 | predicted_AB | 1.1890 | boost | better |
| away | LAD | batter | DH | Shohei Ohtani | worse | 12 | 2 | 10 | 3 | 9 | predicted_AB | 1.1320 | boost | better |
| away | LAD | batter | C | Will Smith | worse | 11 | 2 | 9 | 3 | 8 | predicted_AB | 1.1000 | boost | better |
| away | LAD | batter | SS | Mookie Betts | worse | 11 | 4 | 7 | 5 | 6 | predicted_AB | 1.0980 | boost | better |
| home | ATL | batter | C | Drake Baldwin | worse | 11 | 2 | 9 | 3 | 8 | predicted_H | -1.0600 | deboost | worse |
| away | LAD | pitcher | Middle Reliever | Brock Stewart | worse | 4 | 2 | 2 | 1 | 3 | predicted_BB | -1.0000 | deboost | better |
| away | LAD | pitcher | Middle Reliever | Evan Phillips | worse | 4 | 3 | 1 | 1 | 3 | predicted_ER | 1.0000 | boost | worse |
| home | ATL | batter | RF | Lane Thomas | worse | 10 | 4 | 6 | 2 | 7 | predicted_SF | 1.0000 | boost | higher |
| home | ATL | pitcher | Middle Reliever | Dylan Dodd | worse | 1 | 0 | 1 | 0 | 1 | predicted_SO | -1.0000 | deboost | worse |
| home | ATL | pitcher | Middle Reliever (High Leverage) | Robert Suarez | worse | 2 | 1 | 1 | 0 | 2 | predicted_H | 1.0000 | boost | worse |
| home | ATL | batter | LF | Mauricio Dubón | worse | 11 | 3 | 8 | 4 | 7 | predicted_H | 0.9900 | boost | better |
| home | ATL | batter | SS | Ha-Seong Kim | better | 10 | 8 | 2 | 7 | 3 | predicted_HBP | 0.9860 | boost | better |
| away | LAD | batter | CF | Andy Pages | worse | 12 | 4 | 8 | 3 | 9 | predicted_HBP | 0.9270 | boost | better |
| away | LAD | batter | RF | Kyle Tucker | worse | 11 | 4 | 7 | 5 | 6 | predicted_2B | 0.8490 | boost | better |
| away | LAD | batter | LF | Teoscar Hernández | deboosted | 10 | 4 | 6 | 5 | 5 | predicted_AB | 0.7800 | boost | better |
| home | ATL | batter | 2B | Ozzie Albies | worse | 11 | 3 | 8 | 2 | 9 | predicted_RBI | -0.6800 | deboost | worse |
This table ranks players whose JSON evolution changed materially. Boost/deboost is numeric movement; better/worse is role-aware.
| Field | Value |
|---|---|
| Pitcher | Yoshinobu Yamamoto |
| Role | Starter |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.6349 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.0672 |
| Avg Velo | 91.0640 |
| Avg Spin | 2177.4957 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 6.1000 |
| Pre ER | 1 |
| Pre H | 3 |
| Pre BB | 1 |
| Pre SO | 4 |
| Season ERA | 2.5297 |
| Season WHIP | 0.8703 |
| Role Avg IP | 6.6070 |
| Recent Avg IP | 6.6670 |
| Last Start IP | 6 |
{
"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"
}{
"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"
}{
"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."
}{
"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
}
}{
"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"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Brock Stewart |
| Role | Middle Reliever |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.4068 |
| ESPN Rank | - |
| Movement Available | False |
| Primary Pitch | - |
| Movement Score | - |
| Avg Velo | - |
| Avg Spin | - |
| HB Inches | - |
| IVB Inches | - |
| Release Extension | - |
| Pre IP | 1 |
| Pre ER | 1 |
| Pre H | 1 |
| Pre BB | 0 |
| Pre SO | 0 |
| Season ERA | 2.2500 |
| Season WHIP | 0.9286 |
| Role Avg IP | 0.9640 |
| Recent Avg IP | 0.8670 |
| Last Start IP | 0 |
{
"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"
}{
"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"
}{
"available": false,
"pitcher_id": "592779",
"reason": "pitcher_movement_profile_has_no_pitches"
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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
}
}{
"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"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Evan Phillips |
| Role | Middle Reliever |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | -0.0391 |
| ESPN Rank | - |
| Movement Available | False |
| Primary Pitch | - |
| Movement Score | - |
| Avg Velo | - |
| Avg Spin | - |
| HB Inches | - |
| IVB Inches | - |
| Release Extension | - |
| Pre IP | 0.2000 |
| Pre ER | 1 |
| Pre H | 1 |
| Pre BB | 0 |
| Pre SO | 1 |
| Season ERA | 3.3750 |
| Season WHIP | 1.0875 |
| Role Avg IP | 0.8080 |
| Recent Avg IP | 0.7330 |
| Last Start IP | 0 |
{
"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"
}{
"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"
}{
"available": false,
"pitcher_id": "623465",
"reason": "pitcher_movement_profile_has_no_pitches"
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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
}
}{
"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"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Alex Vesia |
| Role | Middle Reliever (High Leverage) |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.6990 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | -0.0789 |
| Avg Velo | 88.4549 |
| Avg Spin | 2384.6779 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 2 |
| Pre ER | 0 |
| Pre H | 1 |
| Pre BB | 1 |
| Pre SO | 2 |
| Season ERA | 2.5932 |
| Season WHIP | 1.0508 |
| Role Avg IP | 0.8080 |
| Recent Avg IP | 1 |
| Last Start IP | 0 |
{
"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"
}{
"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"
}{
"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."
}{
"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
}
}{
"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"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.203 | 0.000 | 0.000 | Hitting_2B | 0.191 | 0.000 | -0.191 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 3.902 | 5.000 | 5.000 | Hitting_AB | 4.059 | 2.000 | 0.941 | 3.000 |
| predicted_AVG | 0.202 | 0.000 | 0.000 | Hitting_AVG | 0.260 | 0.000 | -0.260 | 0.000 |
| predicted_BB | 0.382 | 0.000 | 0.000 | Hitting_BB | 0.360 | 2.000 | -0.360 | -2.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.018 | 0.000 | -0.018 | 0.000 |
| predicted_H | 0.730 | 0.000 | 0.000 | Hitting_H | 1.055 | 0.000 | -1.055 | 0.000 |
| predicted_HR | 0.150 | 0.000 | 0.000 | Hitting_HR | 0.197 | 0.000 | -0.197 | 0.000 |
| predicted_OBP | 0.338 | 0.000 | 0.000 | Hitting_OBP | 0.322 | 0.500 | -0.322 | -0.500 |
| predicted_R | 0.569 | 1.000 | 1.000 | Hitting_R | 0.622 | 0.000 | 0.378 | 1.000 |
| predicted_RBI | 0.400 | 0.000 | 0.000 | Hitting_RBI | 0.608 | 0.000 | -0.608 | 0.000 |
| predicted_SLG | 0.399 | 0.000 | 0.000 | Hitting_SLG | 0.453 | 0.000 | -0.453 | 0.000 |
| predicted_SO | 0.463 | 0.000 | 0.000 | Hitting_SO | 0.488 | 0.000 | -0.488 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 4 |
| Deboosted Metrics | 7 |
| Better Metrics | 5 |
| Worse Metrics | 6 |
| Biggest Boost | predicted_AB: 3.9020 -> 5.0000 (boost 1.0980, better) |
| Biggest Deboost | predicted_H: 0.7300 -> 0.0000 (deboost -0.7300, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 5 | 4 | 1 | 4 | 1 | predicted_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. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 3 | 4 | 2 | 5 | predicted_SO: 0.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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=18.0, weight=0.150, BvP AVG=0.389) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5420 -> 1.0000 (boost 0.4580, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 5 | 4 | 1 | 5 | 0 | predicted_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 |
| 9 | lineup_integer_allocation | 8 | 7 | 1 | 6 | 2 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 4 | 0 | 4 | 0 | 4 | - | 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 |
| 12 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated |
| 13 | play_by_play_realization | 5 | 1 | 4 | 2 | 3 | predicted_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 |
| 14 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 15 | current_json_final | 2 | 2 | 0 | 2 | 0 | predicted_OBP: 0.3020 -> 0.3170 (boost 0.0150, better) | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.203 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 3.902 | - |
| predicted_AVG | 0.202 | - |
| predicted_BB | 0.382 | - |
| predicted_H | 0.730 | - |
| predicted_HR | 0.150 | - |
| predicted_OBP | 0.338 | - |
| predicted_R | 0.569 | - |
| predicted_RBI | 0.400 | - |
| predicted_SLG | 0.399 | - |
| predicted_SO | 0.463 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.209 | 0.006 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.793 | -0.109 |
| predicted_AVG | 0.218 | 0.016 |
| predicted_BB | 0.459 | 0.077 |
| predicted_H | 0.792 | 0.062 |
| predicted_HBP | 0.010 | - |
| predicted_HR | 0.160 | 0.010 |
| predicted_OBP | 0.339 | 0.001 |
| predicted_R | 0.527 | -0.042 |
| predicted_RBI | 0.421 | 0.021 |
| predicted_SLG | 0.417 | 0.018 |
| predicted_SO | 0.511 | 0.048 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.209 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.793 | 0.000 |
| predicted_AVG | 0.212 | -0.006 |
| predicted_BB | 0.464 | 0.005 |
| predicted_H | 0.803 | 0.011 |
| predicted_HBP | 0.010 | 0.000 |
| predicted_HR | 0.161 | 0.001 |
| predicted_OBP | 0.298 | -0.041 |
| predicted_R | 0.542 | 0.015 |
| predicted_RBI | 0.432 | 0.012 |
| predicted_SLG | 0.394 | -0.023 |
| predicted_SO | 0.506 | -0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.90), rates preserved: AVG=0.196 HR/AB=0.041
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=18.0, weight=0.150, BvP AVG=0.389)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.216 | 0.216 |
| 3B | 0.009 | 0.009 |
| BB | 0.302 | 0.302 |
| H | 1.009 | 0.009 |
| HR | 0.186 | 0.186 |
| RBI | 0.566 | 0.566 |
| SO | 0.567 | -0.433 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.216 |
| 3B | 0.000 | -0.009 |
| AB | 4.000 | 0.000 |
| AVG | 0.263 | - |
| BB | 1.000 | 0.698 |
| H | 1.000 | -0.009 |
| HR | 1.000 | 0.814 |
| OBP | 0.323 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.434 |
| SLG | 0.471 | - |
| SO | 1.000 | 0.433 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.209 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 4.000 | 0.207 |
| predicted_AVG | 0.263 | 0.051 |
| predicted_BB | 1.000 | 0.536 |
| predicted_H | 1.000 | 0.197 |
| predicted_HR | 1.000 | 0.839 |
| predicted_OBP | 0.323 | 0.025 |
| predicted_R | 1.000 | 0.458 |
| predicted_RBI | 1.000 | 0.568 |
| predicted_SLG | 0.471 | 0.077 |
| predicted_SO | 1.000 | 0.494 |
KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.245 | -0.018 |
| BB | 0.000 | -1.000 |
| H | 1.000 | 0.000 |
| HR | 1.000 | 0.000 |
| OBP | 0.302 | -0.021 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SLG | 0.438 | -0.033 |
| SO | 1.000 | 0.000 |
Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | -1.000 |
| PA | 5.000 | - |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -1.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | 0.000 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 15.000 | 2.000 | 0.000 | 0.000 | 1.000 | 1.000 | 1.000 | 4.000 | 4.000 | 0.1333 | 0.3158 | 0.3333 | 0.1333 | 0.0667 | 0.0667 | 0.2667 | 0.2667 |
| last_10 | 0.20 | 10 | - | 35.000 | 10.000 | 5.000 | 0.000 | 1.000 | 4.000 | 5.000 | 8.000 | 5.000 | 0.2857 | 0.4186 | 0.5143 | 0.2857 | 0.0286 | 0.1143 | 0.2286 | 0.1429 |
| season | 0.60 | 123 | - | 480.000 | 124.000 | 25.000 | 0.000 | 23.000 | 69.000 | 70.000 | 47.000 | 57.000 | 0.2583 | 0.3264 | 0.4542 | 0.2583 | 0.0479 | 0.1437 | 0.0979 | 0.1187 |
| Metric | Value |
|---|---|
| predicted_2B | 0.2160 |
| predicted_3B | 0.0010 |
| predicted_AB | 3.6500 |
| predicted_AVG | 0.2393 |
| predicted_BB | 0.5590 |
| predicted_H | 0.8730 |
| predicted_HBP | 0.0100 |
| predicted_HR | 0.1720 |
| predicted_OBP | 0.3407 |
| predicted_R | 0.4730 |
| predicted_RBI | 0.4480 |
| predicted_SLG | 0.4402 |
| predicted_SO | 0.5730 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2030 | 0.2160 | 0.2086 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 3.9020 | 3.6500 | 3.7926 | model_form_blend |
| predicted_AVG | 0.2020 | 0.2393 | 0.2182 | model_form_blend |
| predicted_BB | 0.3820 | 0.5590 | 0.4589 | model_form_blend |
| predicted_H | 0.7300 | 0.8730 | 0.7921 | model_form_blend |
| predicted_HBP | - | 0.0100 | 0.0100 | form_only |
| predicted_HR | 0.1500 | 0.1720 | 0.1596 | model_form_blend |
| predicted_OBP | 0.3380 | 0.3407 | 0.3392 | model_form_blend |
| predicted_R | 0.5690 | 0.4730 | 0.5273 | model_form_blend |
| predicted_RBI | 0.4000 | 0.4480 | 0.4208 | model_form_blend |
| predicted_SLG | 0.3990 | 0.4402 | 0.4169 | model_form_blend |
| predicted_SO | 0.4630 | 0.5730 | 0.5108 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 492 |
| Season rows before report date | 492 |
| Report year | 2026 |
| Profile rows used | 123 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 2 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 2 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 1 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | SS |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 605141 |
| playerID | 605141 |
| playerName | Mookie Betts |
| pos | SS |
| started | True |
| startingPosition | SS |
| team | LAD |
| teamID | 14 |
| game_date | 2026-10-04 |
| sl_k_percent | 11.0 |
| sl_bb_percent | 8.9 |
| sl_woba | 0.338 |
| sl_xwoba | 0.339 |
| sl_xba | 0.278 |
| sl_xslg | 0.435 |
| sl_sweet_spot_percent | 40.4 |
| sl_barrel_batted_rate | 7.8 |
| sl_hard_hit_percent | 38.0 |
| sl_exit_velocity_avg | 90.2 |
| sl_launch_angle_avg | 17.9 |
| sl_whiff_percent | 12.5 |
| sl_swing_percent | 41.3 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.208 | 0.000 | 0.000 | Hitting_2B | 0.228 | 0.000 | -0.228 | 0.000 |
| predicted_3B | 0.006 | 0.000 | 0.000 | Hitting_3B | 0.006 | 0.000 | -0.006 | 0.000 |
| predicted_AB | 4.260 | 5.000 | 5.000 | Hitting_AB | 3.805 | 4.000 | 1.195 | 1.000 |
| predicted_AVG | 0.261 | 0.200 | 0.200 | Hitting_AVG | 0.293 | 0.500 | -0.093 | -0.300 |
| predicted_BB | 0.435 | 0.000 | 0.000 | Hitting_BB | 0.492 | 0.000 | -0.492 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 1.110 | 1.000 | 1.000 | Hitting_H | 1.113 | 2.000 | -0.113 | -1.000 |
| predicted_HR | 0.180 | 0.000 | 0.000 | Hitting_HR | 0.112 | 1.000 | -0.112 | -1.000 |
| predicted_OBP | 0.328 | 0.200 | 0.200 | Hitting_OBP | 0.375 | 0.500 | -0.175 | -0.300 |
| predicted_R | 0.494 | 0.000 | 0.000 | Hitting_R | 0.540 | 1.000 | -0.540 | -1.000 |
| predicted_RBI | 0.500 | 0.000 | 0.000 | Hitting_RBI | 0.490 | 1.000 | -0.490 | -1.000 |
| predicted_SLG | 0.426 | 0.200 | 0.200 | Hitting_SLG | 0.444 | 1.250 | -0.244 | -1.050 |
| predicted_SO | 0.747 | 2.000 | 2.000 | Hitting_SO | 0.752 | 1.000 | 1.248 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 9 |
| Better Metrics | 1 |
| Worse Metrics | 10 |
| Biggest Boost | predicted_SO: 0.7470 -> 2.0000 (boost 1.2530, worse) |
| Biggest Deboost | predicted_RBI: 0.5000 -> 0.0000 (deboost -0.5000, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 1 | 3 | 1 | 3 | predicted_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. |
| 3 | team_form_snapshot | 1 | 1 | 0 | 1 | 0 | predicted_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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 1 | 6 | 0 | 7 | predicted_SO: 0.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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=16.0, weight=0.139, BvP AVG=0.312) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4754 -> 0.0000 (deboost -0.4754, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 5 | 1 | 6 | 0 | predicted_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 |
| 9 | lineup_integer_allocation | 8 | 5 | 3 | 4 | 4 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 12 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated |
| 13 | play_by_play_realization | 4 | 2 | 2 | 1 | 3 | predicted_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 |
| 14 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 15 | current_json_final | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.4080 -> 0.3920 (deboost -0.0160, worse) | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.208 | - |
| predicted_3B | 0.006 | - |
| predicted_AB | 4.260 | - |
| predicted_AVG | 0.261 | - |
| predicted_BB | 0.435 | - |
| predicted_H | 1.110 | - |
| predicted_HR | 0.180 | - |
| predicted_OBP | 0.328 | - |
| predicted_R | 0.494 | - |
| predicted_RBI | 0.500 | - |
| predicted_SLG | 0.426 | - |
| predicted_SO | 0.747 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.173 | -0.035 |
| predicted_3B | 0.005 | -0.001 |
| predicted_AB | 4.054 | -0.206 |
| predicted_AVG | 0.267 | 0.006 |
| predicted_BB | 0.385 | -0.050 |
| predicted_H | 1.078 | -0.032 |
| predicted_HBP | 0.020 | - |
| predicted_HR | 0.157 | -0.023 |
| predicted_OBP | 0.329 | 0.001 |
| predicted_R | 0.463 | -0.031 |
| predicted_RBI | 0.452 | -0.048 |
| predicted_SLG | 0.419 | -0.007 |
| predicted_SO | 0.782 | 0.035 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.173 | 0.000 |
| predicted_3B | 0.005 | 0.000 |
| predicted_AB | 4.054 | 0.000 |
| predicted_AVG | 0.270 | 0.003 |
| predicted_BB | 0.389 | 0.004 |
| predicted_H | 1.093 | 0.015 |
| predicted_HBP | 0.020 | 0.000 |
| predicted_HR | 0.158 | 0.001 |
| predicted_OBP | 0.334 | 0.005 |
| predicted_R | 0.475 | 0.013 |
| predicted_RBI | 0.465 | 0.013 |
| predicted_SLG | 0.432 | 0.013 |
| predicted_SO | 0.774 | -0.008 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.26), rates preserved: AVG=0.244 HR/AB=0.037
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=16.0, weight=0.139, BvP AVG=0.312)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.201 | 0.201 |
| 3B | 0.012 | 0.012 |
| BB | 0.295 | 0.295 |
| H | 1.075 | 0.075 |
| HR | 0.139 | 0.139 |
| RBI | 0.542 | 0.542 |
| SO | 0.889 | -0.111 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.799 |
| 3B | 0.000 | -0.012 |
| AB | 4.000 | 0.000 |
| AVG | 0.275 | - |
| BB | 0.000 | -0.295 |
| H | 1.000 | -0.075 |
| HR | 0.000 | -0.139 |
| OBP | 0.331 | - |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.458 |
| SLG | 0.439 | - |
| SO | 1.000 | 0.111 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 1.000 | 0.827 |
| predicted_3B | 0.000 | -0.005 |
| predicted_AB | 4.000 | -0.054 |
| predicted_AVG | 0.275 | 0.005 |
| predicted_BB | 0.000 | -0.389 |
| predicted_H | 1.000 | -0.093 |
| predicted_HR | 0.000 | -0.158 |
| predicted_OBP | 0.331 | -0.003 |
| predicted_R | 0.000 | -0.475 |
| predicted_RBI | 1.000 | 0.535 |
| predicted_SLG | 0.439 | 0.007 |
| predicted_SO | 1.000 | 0.226 |
KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.256 | -0.019 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.310 | -0.021 |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SLG | 0.408 | -0.031 |
| SO | 1.000 | 0.000 |
Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -1.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -1.000 |
| SF | 0.000 | 0.000 |
| SO | 2.000 | 1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 2.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 18.000 | 5.000 | 0.000 | 0.000 | 1.000 | 1.000 | 2.000 | 1.000 | 4.000 | 0.2778 | 0.3158 | 0.4444 | 0.2778 | 0.0556 | 0.0556 | 0.0556 | 0.2222 |
| last_10 | 0.20 | 10 | - | 40.000 | 9.000 | 0.000 | 0.000 | 1.000 | 4.000 | 2.000 | 1.000 | 11.000 | 0.2250 | 0.2439 | 0.3000 | 0.2250 | 0.0250 | 0.1000 | 0.0250 | 0.2750 |
| season | 0.60 | 154 | - | 582.000 | 169.000 | 32.000 | 1.000 | 17.000 | 69.000 | 76.000 | 67.000 | 115.000 | 0.2904 | 0.3652 | 0.4364 | 0.2904 | 0.0292 | 0.1186 | 0.1151 | 0.1976 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1270 |
| predicted_3B | 0.0040 |
| predicted_AB | 3.7880 |
| predicted_AVG | 0.2736 |
| predicted_BB | 0.3200 |
| predicted_H | 1.0370 |
| predicted_HBP | 0.0200 |
| predicted_HR | 0.1280 |
| predicted_OBP | 0.3299 |
| predicted_R | 0.4220 |
| predicted_RBI | 0.3910 |
| predicted_SLG | 0.4106 |
| predicted_SO | 0.8270 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2080 | 0.1270 | 0.1726 | model_form_blend |
| predicted_3B | 0.0060 | 0.0040 | 0.0051 | model_form_blend |
| predicted_AB | 4.2600 | 3.7880 | 4.0536 | model_form_blend |
| predicted_AVG | 0.2610 | 0.2736 | 0.2665 | model_form_blend |
| predicted_BB | 0.4350 | 0.3200 | 0.3847 | model_form_blend |
| predicted_H | 1.1100 | 1.0370 | 1.0781 | model_form_blend |
| predicted_HBP | - | 0.0200 | 0.0200 | form_only |
| predicted_HR | 0.1800 | 0.1280 | 0.1573 | model_form_blend |
| predicted_OBP | 0.3280 | 0.3299 | 0.3288 | model_form_blend |
| predicted_R | 0.4940 | 0.4220 | 0.4625 | model_form_blend |
| predicted_RBI | 0.5000 | 0.3910 | 0.4523 | model_form_blend |
| predicted_SLG | 0.4260 | 0.4106 | 0.4193 | model_form_blend |
| predicted_SO | 0.7470 | 0.8270 | 0.7820 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 626 |
| Season rows before report date | 626 |
| Report year | 2026 |
| Profile rows used | 154 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 2 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.5 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 2 |
| Hitting_HBP | 0 |
| Hitting_HR | 1 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 5 |
| Hitting_battingOrder | 4 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 1B |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 518692 |
| playerID | 518692 |
| playerName | Freddie Freeman |
| pos | 1B |
| started | True |
| startingPosition | 1B |
| team | LAD |
| teamID | 14 |
| game_date | 2026-10-04 |
| sl_k_percent | 17.7 |
| sl_bb_percent | 10.0 |
| sl_woba | 0.348 |
| sl_xwoba | 0.363 |
| sl_xba | 0.29 |
| sl_xslg | 0.463 |
| sl_sweet_spot_percent | 38.7 |
| sl_barrel_batted_rate | 8.1 |
| sl_hard_hit_percent | 41.3 |
| sl_exit_velocity_avg | 89.5 |
| sl_launch_angle_avg | 12.2 |
| sl_whiff_percent | 23.2 |
| sl_swing_percent | 50.1 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.136 | 0.000 | 0.000 | Hitting_2B | 0.139 | 0.000 | -0.139 | 0.000 |
| predicted_3B | 0.016 | 0.000 | 0.000 | Hitting_3B | 0.017 | 0.000 | -0.017 | 0.000 |
| predicted_AB | 4.220 | 5.000 | 5.000 | Hitting_AB | 3.663 | 4.000 | 1.337 | 1.000 |
| predicted_AVG | 0.225 | 0.200 | 0.200 | Hitting_AVG | 0.266 | 0.000 | -0.066 | 0.200 |
| predicted_BB | 0.328 | 0.000 | 0.000 | Hitting_BB | 0.376 | 0.000 | -0.376 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.009 | 0.000 | -0.009 | 0.000 |
| predicted_H | 0.950 | 1.000 | 1.000 | Hitting_H | 0.974 | 0.000 | 0.026 | 1.000 |
| predicted_HR | 0.200 | 0.000 | 0.000 | Hitting_HR | 0.130 | 0.000 | -0.130 | 0.000 |
| predicted_OBP | 0.285 | 0.200 | 0.200 | Hitting_OBP | 0.337 | 0.000 | -0.137 | 0.200 |
| predicted_R | 0.536 | 1.000 | 1.000 | Hitting_R | 0.554 | 0.000 | 0.446 | 1.000 |
| predicted_RBI | 0.520 | 0.000 | 0.000 | Hitting_RBI | 0.550 | 0.000 | -0.550 | 0.000 |
| predicted_SLG | 0.440 | 0.200 | 0.200 | Hitting_SLG | 0.420 | 0.000 | -0.220 | 0.200 |
| predicted_SO | 1.096 | 1.000 | 1.000 | Hitting_SO | 1.093 | 2.000 | -0.093 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | deboosted |
| Changed Metrics | 10 |
| Boosted Metrics | 4 |
| Deboosted Metrics | 6 |
| Better Metrics | 5 |
| Worse Metrics | 5 |
| Biggest Boost | predicted_AB: 4.2200 -> 5.0000 (boost 0.7800, better) |
| Biggest Deboost | predicted_RBI: 0.5200 -> 0.0000 (deboost -0.5200, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 6 | 4 | 2 | 3 | 3 | predicted_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. |
| 3 | team_form_snapshot | 1 | 0 | 1 | 0 | 1 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 5 | 0 | 5 | 1 | 4 | - | 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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=24.0, weight=0.178, BvP AVG=0.208) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5687 -> 1.0000 (boost 0.4313, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_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 |
| 9 | lineup_integer_allocation | 8 | 3 | 5 | 4 | 4 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 4 | 0 | 4 | 0 | 4 | - | 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 |
| 12 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Market blend not applied: no props for this hitter |
| 13 | play_by_play_realization | 1 | 1 | 0 | 1 | 0 | predicted_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 |
| 14 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 15 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.136 | - |
| predicted_3B | 0.016 | - |
| predicted_AB | 4.220 | - |
| predicted_AVG | 0.225 | - |
| predicted_BB | 0.328 | - |
| predicted_H | 0.950 | - |
| predicted_HR | 0.200 | - |
| predicted_OBP | 0.285 | - |
| predicted_R | 0.536 | - |
| predicted_RBI | 0.520 | - |
| predicted_SLG | 0.440 | - |
| predicted_SO | 1.096 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.140 | 0.004 |
| predicted_3B | 0.013 | -0.003 |
| predicted_AB | 3.965 | -0.255 |
| predicted_AVG | 0.241 | 0.016 |
| predicted_BB | 0.274 | -0.054 |
| predicted_H | 0.950 | 0.000 |
| predicted_HBP | 0.038 | - |
| predicted_HR | 0.199 | -0.001 |
| predicted_OBP | 0.294 | 0.009 |
| predicted_R | 0.553 | 0.017 |
| predicted_RBI | 0.509 | -0.011 |
| predicted_SLG | 0.453 | 0.013 |
| predicted_SO | 1.147 | 0.051 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.140 | 0.000 |
| predicted_3B | 0.013 | 0.000 |
| predicted_AB | 3.965 | 0.000 |
| predicted_AVG | 0.243 | 0.002 |
| predicted_BB | 0.277 | 0.003 |
| predicted_H | 0.964 | 0.014 |
| predicted_HBP | 0.038 | 0.000 |
| predicted_HR | 0.200 | 0.001 |
| predicted_OBP | 0.292 | -0.001 |
| predicted_R | 0.569 | 0.015 |
| predicted_RBI | 0.523 | 0.014 |
| predicted_SLG | 0.436 | -0.017 |
| predicted_SO | 1.135 | -0.012 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.22), rates preserved: AVG=0.217 HR/AB=0.047
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=24.0, weight=0.178, BvP AVG=0.208)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.179 | 0.179 |
| 3B | 0.014 | 0.014 |
| BB | 0.278 | 0.278 |
| H | 0.918 | -0.082 |
| HR | 0.149 | 0.149 |
| RBI | 0.497 | 0.497 |
| SO | 1.322 | 0.322 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.821 |
| 3B | 0.000 | -0.014 |
| AB | 4.000 | 0.000 |
| AVG | 0.247 | - |
| BB | 0.000 | -0.278 |
| H | 1.000 | 0.082 |
| HR | 0.000 | -0.149 |
| OBP | 0.305 | - |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.497 |
| SLG | 0.423 | - |
| SO | 1.000 | -0.322 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 1.000 | 0.861 |
| predicted_3B | 0.000 | -0.013 |
| predicted_AB | 4.000 | 0.035 |
| predicted_AVG | 0.247 | 0.004 |
| predicted_BB | 0.000 | -0.277 |
| predicted_H | 1.000 | 0.036 |
| predicted_HR | 0.000 | -0.200 |
| predicted_OBP | 0.305 | 0.013 |
| predicted_R | 1.000 | 0.431 |
| predicted_RBI | 0.000 | -0.523 |
| predicted_SLG | 0.423 | -0.014 |
| predicted_SO | 1.000 | -0.135 |
KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -1.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.230 | -0.017 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.285 | -0.020 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.394 | -0.029 |
| SO | 1.000 | 0.000 |
Market blend not applied: no props for this hitter
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | 0.000 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 18.000 | 4.000 | 1.000 | 0.000 | 2.000 | 3.000 | 3.000 | 0.000 | 7.000 | 0.2222 | 0.2222 | 0.6111 | 0.2222 | 0.1111 | 0.1667 | 0.0000 | 0.3889 |
| last_10 | 0.20 | 10 | - | 38.000 | 11.000 | 1.000 | 0.000 | 2.000 | 3.000 | 7.000 | 0.000 | 15.000 | 0.2895 | 0.3077 | 0.4737 | 0.2895 | 0.0526 | 0.0790 | 0.0000 | 0.3947 |
| season | 0.60 | 125 | - | 446.000 | 119.000 | 17.000 | 2.000 | 17.000 | 65.000 | 67.000 | 41.000 | 137.000 | 0.2668 | 0.3320 | 0.4283 | 0.2668 | 0.0381 | 0.1457 | 0.0919 | 0.3072 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1440 |
| predicted_3B | 0.0100 |
| predicted_AB | 3.6310 |
| predicted_AVG | 0.2616 |
| predicted_BB | 0.2030 |
| predicted_H | 0.9500 |
| predicted_HBP | 0.0380 |
| predicted_HR | 0.1980 |
| predicted_OBP | 0.3052 |
| predicted_R | 0.5760 |
| predicted_RBI | 0.4940 |
| predicted_SLG | 0.4701 |
| predicted_SO | 1.2140 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1360 | 0.1440 | 0.1395 | model_form_blend |
| predicted_3B | 0.0160 | 0.0100 | 0.0134 | model_form_blend |
| predicted_AB | 4.2200 | 3.6310 | 3.9648 | model_form_blend |
| predicted_AVG | 0.2250 | 0.2616 | 0.2409 | model_form_blend |
| predicted_BB | 0.3280 | 0.2030 | 0.2738 | model_form_blend |
| predicted_H | 0.9500 | 0.9500 | 0.9500 | model_form_blend |
| predicted_HBP | - | 0.0380 | 0.0380 | form_only |
| predicted_HR | 0.2000 | 0.1980 | 0.1991 | model_form_blend |
| predicted_OBP | 0.2850 | 0.3052 | 0.2938 | model_form_blend |
| predicted_R | 0.5360 | 0.5760 | 0.5533 | model_form_blend |
| predicted_RBI | 0.5200 | 0.4940 | 0.5087 | model_form_blend |
| predicted_SLG | 0.4400 | 0.4701 | 0.4530 | model_form_blend |
| predicted_SO | 1.0960 | 1.2140 | 1.1471 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 460 |
| Season rows before report date | 460 |
| Report year | 2026 |
| Profile rows used | 125 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 2 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 5 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | LF |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 606192 |
| playerID | 606192 |
| playerName | Teoscar Hernández |
| pos | LF |
| started | True |
| startingPosition | LF |
| team | LAD |
| teamID | 14 |
| game_date | 2026-10-04 |
| sl_k_percent | 27.5 |
| sl_bb_percent | 8.6 |
| sl_woba | 0.332 |
| sl_xwoba | 0.332 |
| sl_xba | 0.256 |
| sl_xslg | 0.437 |
| sl_sweet_spot_percent | 33.5 |
| sl_barrel_batted_rate | 10.7 |
| sl_hard_hit_percent | 44.8 |
| sl_exit_velocity_avg | 90.3 |
| sl_launch_angle_avg | 13.9 |
| sl_whiff_percent | 32.6 |
| sl_swing_percent | 48.0 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.125 | 0.000 | 0.000 | Hitting_2B | 0.157 | 0.000 | -0.157 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 3.900 | 5.000 | 5.000 | Hitting_AB | 3.596 | 4.000 | 1.404 | 1.000 |
| predicted_AVG | 0.256 | 0.400 | 0.400 | Hitting_AVG | 0.251 | 0.000 | 0.149 | 0.400 |
| predicted_BB | 0.444 | 0.000 | 0.000 | Hitting_BB | 0.494 | 0.000 | -0.494 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 1.000 | 2.000 | 2.000 | Hitting_H | 0.902 | 0.000 | 1.098 | 2.000 |
| predicted_HR | 0.160 | 0.000 | 0.000 | Hitting_HR | 0.122 | 0.000 | -0.122 | 0.000 |
| predicted_OBP | 0.355 | 0.400 | 0.400 | Hitting_OBP | 0.345 | 0.000 | 0.055 | 0.400 |
| predicted_R | 0.486 | 0.000 | 0.000 | Hitting_R | 0.533 | 0.000 | -0.533 | 0.000 |
| predicted_RBI | 0.480 | 0.000 | 0.000 | Hitting_RBI | 0.525 | 0.000 | -0.525 | 0.000 |
| predicted_SLG | 0.419 | 0.400 | 0.400 | Hitting_SLG | 0.396 | 0.000 | 0.004 | 0.400 |
| predicted_SO | 0.653 | 0.000 | 0.000 | Hitting_SO | 0.678 | 2.000 | -0.678 | -2.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 9 |
| Better Metrics | 3 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_AB: 3.9000 -> 5.0000 (boost 1.1000, better) |
| Biggest Deboost | predicted_SO: 0.6530 -> 0.0000 (deboost -0.6530, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 2 | 1 | 1 | 1 | 1 | predicted_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. |
| 3 | team_form_snapshot | 1 | 0 | 1 | 0 | 1 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 2 | 4 | 1 | 5 | predicted_SO: 0.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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=7.0, weight=0.076, BvP AVG=0.000) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4787 -> 0.0000 (deboost -0.4787, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_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 |
| 9 | lineup_integer_allocation | 9 | 3 | 6 | 2 | 7 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 12 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated |
| 13 | play_by_play_realization | 4 | 2 | 2 | 3 | 1 | predicted_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 |
| 14 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 15 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.3640 -> 0.3770 (boost 0.0130, better) | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.125 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 3.900 | - |
| predicted_AVG | 0.256 | - |
| predicted_BB | 0.444 | - |
| predicted_H | 1.000 | - |
| predicted_HR | 0.160 | - |
| predicted_OBP | 0.355 | - |
| predicted_R | 0.486 | - |
| predicted_RBI | 0.480 | - |
| predicted_SLG | 0.419 | - |
| predicted_SO | 0.653 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.115 | -0.010 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.707 | -0.193 |
| predicted_AVG | 0.264 | 0.008 |
| predicted_BB | 0.454 | 0.010 |
| predicted_H | 0.978 | -0.022 |
| predicted_HBP | 0.026 | - |
| predicted_HR | 0.152 | -0.008 |
| predicted_OBP | 0.359 | 0.004 |
| predicted_R | 0.466 | -0.020 |
| predicted_RBI | 0.440 | -0.040 |
| predicted_SLG | 0.423 | 0.004 |
| predicted_SO | 0.675 | 0.022 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.115 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.707 | 0.000 |
| predicted_AVG | 0.267 | 0.003 |
| predicted_BB | 0.459 | 0.005 |
| predicted_H | 0.992 | 0.014 |
| predicted_HBP | 0.026 | 0.000 |
| predicted_HR | 0.153 | 0.001 |
| predicted_OBP | 0.348 | -0.011 |
| predicted_R | 0.479 | 0.013 |
| predicted_RBI | 0.452 | 0.012 |
| predicted_SLG | 0.423 | -0.001 |
| predicted_SO | 0.669 | -0.007 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.90), rates preserved: AVG=0.242 HR/AB=0.039
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=7.0, weight=0.076, BvP AVG=0.000)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.154 | 0.154 |
| 3B | 0.011 | 0.011 |
| BB | 0.342 | 0.342 |
| H | 0.834 | -0.166 |
| HR | 0.138 | 0.138 |
| RBI | 0.446 | 0.446 |
| SO | 0.857 | -0.143 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.154 |
| 3B | 0.000 | -0.011 |
| AB | 4.000 | 0.000 |
| AVG | 0.229 | - |
| BB | 1.000 | 0.658 |
| H | 1.000 | 0.166 |
| HR | 0.000 | -0.138 |
| OBP | 0.301 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.446 |
| SLG | 0.392 | - |
| SO | 1.000 | 0.143 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.115 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 4.000 | 0.293 |
| predicted_AVG | 0.229 | -0.038 |
| predicted_BB | 1.000 | 0.541 |
| predicted_H | 1.000 | 0.008 |
| predicted_HR | 0.000 | -0.153 |
| predicted_OBP | 0.301 | -0.047 |
| predicted_R | 0.000 | -0.479 |
| predicted_RBI | 0.000 | -0.452 |
| predicted_SLG | 0.392 | -0.031 |
| predicted_SO | 1.000 | 0.331 |
KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.213 | -0.016 |
| BB | 1.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.282 | -0.019 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.364 | -0.028 |
| SO | 1.000 | 0.000 |
Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | -1.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 2.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 17.000 | 5.000 | 0.000 | 0.000 | 0.000 | 0.000 | 1.000 | 3.000 | 4.000 | 0.2941 | 0.4000 | 0.2941 | 0.2941 | 0.0000 | 0.0000 | 0.1765 | 0.2353 |
| last_10 | 0.20 | 10 | - | 35.000 | 12.000 | 1.000 | 0.000 | 3.000 | 5.000 | 5.000 | 5.000 | 7.000 | 0.3429 | 0.4250 | 0.6286 | 0.3429 | 0.0857 | 0.1429 | 0.1429 | 0.2000 |
| season | 0.60 | 72 | - | 243.000 | 61.000 | 9.000 | 0.000 | 10.000 | 33.000 | 35.000 | 32.000 | 47.000 | 0.2510 | 0.3416 | 0.4115 | 0.2510 | 0.0411 | 0.1358 | 0.1317 | 0.1934 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1020 |
| predicted_3B | 0.0010 |
| predicted_AB | 3.4430 |
| predicted_AVG | 0.2751 |
| predicted_BB | 0.4680 |
| predicted_H | 0.9470 |
| predicted_HBP | 0.0260 |
| predicted_HR | 0.1420 |
| predicted_OBP | 0.3637 |
| predicted_R | 0.4380 |
| predicted_RBI | 0.3840 |
| predicted_SLG | 0.4291 |
| predicted_SO | 0.7060 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1250 | 0.1020 | 0.1153 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 3.9000 | 3.4430 | 3.7072 | model_form_blend |
| predicted_AVG | 0.2560 | 0.2751 | 0.2641 | model_form_blend |
| predicted_BB | 0.4440 | 0.4680 | 0.4541 | model_form_blend |
| predicted_H | 1.0000 | 0.9470 | 0.9776 | model_form_blend |
| predicted_HBP | - | 0.0260 | 0.0260 | form_only |
| predicted_HR | 0.1600 | 0.1420 | 0.1524 | model_form_blend |
| predicted_OBP | 0.3550 | 0.3637 | 0.3587 | model_form_blend |
| predicted_R | 0.4860 | 0.4380 | 0.4658 | model_form_blend |
| predicted_RBI | 0.4800 | 0.3840 | 0.4395 | model_form_blend |
| predicted_SLG | 0.4190 | 0.4291 | 0.4233 | model_form_blend |
| predicted_SO | 0.6530 | 0.7060 | 0.6754 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 255 |
| Season rows before report date | 255 |
| Report year | 2026 |
| Profile rows used | 72 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 2 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 2 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 3 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | C |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 669257 |
| playerID | 669257 |
| playerName | Will Smith |
| pos | C |
| started | True |
| startingPosition | C |
| team | LAD |
| teamID | 14 |
| game_date | 2026-10-04 |
| sl_k_percent | 16.3 |
| sl_bb_percent | 12.3 |
| sl_woba | 0.345 |
| sl_xwoba | 0.389 |
| sl_xba | 0.279 |
| sl_xslg | 0.502 |
| sl_sweet_spot_percent | 43.3 |
| sl_barrel_batted_rate | 12.4 |
| sl_hard_hit_percent | 41.2 |
| sl_exit_velocity_avg | 89.1 |
| sl_launch_angle_avg | 20.1 |
| sl_whiff_percent | 16.7 |
| sl_swing_percent | 41.6 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.184 | 0.000 | 0.000 | Hitting_2B | 0.185 | 0.000 | -0.185 | 0.000 |
| predicted_3B | 0.029 | 0.000 | 0.000 | Hitting_3B | 0.033 | 0.000 | -0.033 | 0.000 |
| predicted_AB | 3.868 | 5.000 | 5.000 | Hitting_AB | 3.902 | 4.000 | 1.098 | 1.000 |
| predicted_AVG | 0.274 | 0.200 | 0.200 | Hitting_AVG | 0.279 | 0.250 | -0.079 | -0.050 |
| predicted_BB | 0.596 | 0.000 | 0.000 | Hitting_BB | 0.637 | 0.000 | -0.637 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.022 | 0.000 | -0.022 | 0.000 |
| predicted_H | 1.059 | 1.000 | 1.000 | Hitting_H | 1.088 | 1.000 | -0.088 | 0.000 |
| predicted_HR | 0.221 | 0.000 | 0.000 | Hitting_HR | 0.230 | 0.000 | -0.230 | 0.000 |
| predicted_OBP | 0.371 | 0.200 | 0.200 | Hitting_OBP | 0.384 | 0.250 | -0.184 | -0.050 |
| predicted_R | 0.647 | 0.000 | 0.000 | Hitting_R | 0.689 | 0.000 | -0.689 | 0.000 |
| predicted_RBI | 0.581 | 1.000 | 1.000 | Hitting_RBI | 0.631 | 0.000 | 0.369 | 1.000 |
| predicted_SLG | 0.508 | 0.200 | 0.200 | Hitting_SLG | 0.520 | 0.250 | -0.320 | -0.050 |
| predicted_SO | 1.125 | 1.000 | 1.000 | Hitting_SO | 1.136 | 2.000 | -0.136 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 12 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 10 |
| Better Metrics | 3 |
| Worse Metrics | 9 |
| Biggest Boost | predicted_AB: 3.8680 -> 5.0000 (boost 1.1320, better) |
| Biggest Deboost | predicted_R: 0.6470 -> 0.0000 (deboost -0.6470, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 7 | 1 | 6 | 0 | 7 | predicted_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. |
| 3 | team_form_snapshot | 0 | 0 | 0 | 0 | 0 | - | - | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 1 | 6 | 2 | 5 | predicted_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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=15.0, weight=0.133, BvP AVG=0.200) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5779 -> 1.0000 (boost 0.4221, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_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 |
| 9 | lineup_integer_allocation | 9 | 3 | 6 | 4 | 5 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 12 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated |
| 13 | play_by_play_realization | 3 | 1 | 2 | 1 | 2 | predicted_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 |
| 14 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 15 | current_json_final | 2 | 0 | 2 | 0 | 2 | - | predicted_AVG: 0.2330 -> 0.2210 (deboost -0.0120, worse) | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.184 | - |
| predicted_3B | 0.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 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.162 | -0.022 |
| predicted_3B | 0.024 | -0.005 |
| predicted_AB | 3.872 | 0.004 |
| predicted_AVG | 0.262 | -0.012 |
| predicted_BB | 0.524 | -0.072 |
| predicted_H | 1.014 | -0.045 |
| predicted_HBP | 0.070 | - |
| predicted_HR | 0.183 | -0.038 |
| predicted_OBP | 0.352 | -0.019 |
| predicted_R | 0.562 | -0.085 |
| predicted_RBI | 0.491 | -0.090 |
| predicted_SLG | 0.458 | -0.050 |
| predicted_SO | 1.182 | 0.057 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.162 | 0.000 |
| predicted_3B | 0.024 | 0.000 |
| predicted_AB | 3.872 | 0.000 |
| predicted_AVG | 0.266 | 0.004 |
| predicted_BB | 0.530 | 0.005 |
| predicted_H | 1.028 | 0.014 |
| predicted_HBP | 0.070 | 0.000 |
| predicted_HR | 0.184 | 0.001 |
| predicted_OBP | 0.354 | 0.002 |
| predicted_R | 0.578 | 0.016 |
| predicted_RBI | 0.505 | 0.014 |
| predicted_SLG | 0.462 | 0.005 |
| predicted_SO | 1.170 | -0.012 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.87), rates preserved: AVG=0.252 HR/AB=0.047
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=15.0, weight=0.133, BvP AVG=0.200)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.164 | 0.164 |
| 3B | 0.020 | 0.020 |
| BB | 0.354 | 0.354 |
| H | 0.944 | -0.056 |
| HR | 0.171 | 0.171 |
| RBI | 0.527 | 0.527 |
| SO | 1.270 | 0.270 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.164 |
| 3B | 0.000 | -0.020 |
| AB | 4.000 | 0.000 |
| AVG | 0.251 | - |
| BB | 1.000 | 0.646 |
| H | 1.000 | 0.056 |
| HR | 0.000 | -0.171 |
| OBP | 0.320 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.473 |
| SLG | 0.441 | - |
| SO | 1.000 | -0.270 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.162 |
| predicted_3B | 0.000 | -0.024 |
| predicted_AB | 4.000 | 0.128 |
| predicted_AVG | 0.251 | -0.015 |
| predicted_BB | 1.000 | 0.470 |
| predicted_H | 1.000 | -0.028 |
| predicted_HR | 0.000 | -0.184 |
| predicted_OBP | 0.320 | -0.034 |
| predicted_R | 1.000 | 0.422 |
| predicted_RBI | 1.000 | 0.495 |
| predicted_SLG | 0.441 | -0.021 |
| predicted_SO | 1.000 | -0.170 |
KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.233 | -0.018 |
| BB | 1.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.300 | -0.020 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SLG | 0.410 | -0.031 |
| SO | 1.000 | 0.000 |
Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | -1.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 0.000 | -1.000 |
| RBI | 1.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 20.000 | 4.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 7.000 | 0.2000 | 0.2000 | 0.2000 | 0.2000 | 0.0000 | 0.0000 | 0.0000 | 0.3500 |
| last_10 | 0.20 | 10 | - | 38.000 | 8.000 | 1.000 | 0.000 | 0.000 | 1.000 | 3.000 | 4.000 | 16.000 | 0.2105 | 0.3182 | 0.2368 | 0.2105 | 0.0000 | 0.0263 | 0.1053 | 0.4210 |
| season | 0.60 | 136 | - | 526.000 | 144.000 | 25.000 | 4.000 | 30.000 | 79.000 | 88.000 | 81.000 | 153.000 | 0.2738 | 0.3748 | 0.5076 | 0.2738 | 0.0570 | 0.1502 | 0.1540 | 0.2909 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1330 |
| predicted_3B | 0.0180 |
| predicted_AB | 3.8770 |
| predicted_AVG | 0.2465 |
| predicted_BB | 0.4320 |
| predicted_H | 0.9550 |
| predicted_HBP | 0.0700 |
| predicted_HR | 0.1330 |
| predicted_OBP | 0.3275 |
| predicted_R | 0.4530 |
| predicted_RBI | 0.3750 |
| predicted_SLG | 0.3926 |
| predicted_SO | 1.2560 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1840 | 0.1330 | 0.1617 | model_form_blend |
| predicted_3B | 0.0290 | 0.0180 | 0.0242 | model_form_blend |
| predicted_AB | 3.8680 | 3.8770 | 3.8719 | model_form_blend |
| predicted_AVG | 0.2740 | 0.2465 | 0.2620 | model_form_blend |
| predicted_BB | 0.5960 | 0.4320 | 0.5244 | model_form_blend |
| predicted_H | 1.0590 | 0.9550 | 1.0136 | model_form_blend |
| predicted_HBP | - | 0.0700 | 0.0700 | form_only |
| predicted_HR | 0.2210 | 0.1330 | 0.1826 | model_form_blend |
| predicted_OBP | 0.3710 | 0.3275 | 0.3520 | model_form_blend |
| predicted_R | 0.6470 | 0.4530 | 0.5623 | model_form_blend |
| predicted_RBI | 0.5810 | 0.3750 | 0.4911 | model_form_blend |
| predicted_SLG | 0.5080 | 0.3926 | 0.4576 | model_form_blend |
| predicted_SO | 1.1250 | 1.2560 | 1.1822 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 604 |
| Season rows before report date | 604 |
| Report year | 2026 |
| Profile rows used | 136 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 1 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.25 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 2 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 2 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | DH |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 660271 |
| playerID | 660271 |
| playerName | Shohei Ohtani |
| pos | TWP |
| started | True |
| startingPosition | DH |
| team | LAD |
| teamID | 14 |
| game_date | 2026-10-04 |
| sl_k_percent | 24.6 |
| sl_bb_percent | 13.1 |
| sl_woba | 0.377 |
| sl_xwoba | 0.397 |
| sl_xba | 0.286 |
| sl_xslg | 0.552 |
| sl_sweet_spot_percent | 38.0 |
| sl_barrel_batted_rate | 16.4 |
| sl_hard_hit_percent | 52.1 |
| sl_exit_velocity_avg | 93.3 |
| sl_launch_angle_avg | 12.3 |
| sl_whiff_percent | 31.7 |
| sl_swing_percent | 46.6 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.188 | 1.000 | 1.000 | Hitting_2B | 0.191 | 1.000 | 0.809 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 2.500 | 5.000 | 5.000 | Hitting_AB | 2.741 | 1.000 | 2.259 | 4.000 |
| predicted_AVG | 0.359 | 0.400 | 0.400 | Hitting_AVG | 0.267 | 1.000 | 0.133 | -0.600 |
| predicted_BB | 0.144 | 0.000 | 0.000 | Hitting_BB | 0.167 | 0.000 | -0.167 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.016 | 0.000 | -0.016 | 0.000 |
| predicted_H | 0.560 | 2.000 | 2.000 | Hitting_H | 0.733 | 1.000 | 1.267 | 1.000 |
| predicted_HR | 0.060 | 0.000 | 0.000 | Hitting_HR | 0.064 | 0.000 | -0.064 | 0.000 |
| predicted_OBP | 0.359 | 0.400 | 0.400 | Hitting_OBP | 0.304 | 1.000 | 0.096 | -0.600 |
| predicted_R | 0.243 | 0.000 | 0.000 | Hitting_R | 0.303 | 0.000 | -0.303 | 0.000 |
| predicted_RBI | 0.230 | 0.000 | 0.000 | Hitting_RBI | 0.299 | 0.000 | -0.299 | 0.000 |
| predicted_SB | - | 0.000 | 0.000 | BaseRunning_SB | 0.008 | 0.000 | -0.008 | 0.000 |
| predicted_SLG | 0.495 | 0.600 | 0.600 | Hitting_SLG | 0.407 | 2.000 | 0.193 | -1.400 |
| predicted_SO | 0.299 | 1.000 | 1.000 | Hitting_SO | 0.343 | 0.000 | 0.657 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 4 |
| Deboosted Metrics | 7 |
| Better Metrics | 3 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_AB: 2.5000 -> 5.0000 (boost 2.5000, better) |
| Biggest Deboost | predicted_R: 0.2430 -> 0.0000 (deboost -0.2430, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 0 | 4 | 0 | 4 | - | predicted_AB: 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. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 2 | 5 | 3 | 4 | predicted_AB: 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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=13.0, weight=0.121, BvP AVG=0.154) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.2584 -> 0.0000 (deboost -0.2584, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_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 |
| 9 | lineup_integer_allocation | 8 | 1 | 7 | 2 | 6 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 4 | 0 | 4 | 0 | 4 | - | 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 |
| 12 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated |
| 13 | play_by_play_realization | 4 | 4 | 0 | 3 | 1 | predicted_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 |
| 14 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 15 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.3520 -> 0.3640 (boost 0.0120, better) | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.188 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 2.500 | - |
| predicted_AVG | 0.359 | - |
| predicted_BB | 0.144 | - |
| predicted_H | 0.560 | - |
| predicted_HR | 0.060 | - |
| predicted_OBP | 0.359 | - |
| predicted_R | 0.243 | - |
| predicted_RBI | 0.230 | - |
| predicted_SLG | 0.495 | - |
| predicted_SO | 0.299 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.191 | 0.003 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 2.418 | -0.082 |
| predicted_AVG | 0.320 | -0.039 |
| predicted_BB | 0.188 | 0.044 |
| predicted_H | 0.583 | 0.023 |
| predicted_HBP | 0.008 | - |
| predicted_HR | 0.056 | -0.004 |
| predicted_OBP | 0.348 | -0.011 |
| predicted_R | 0.251 | 0.008 |
| predicted_RBI | 0.245 | 0.015 |
| predicted_SLG | 0.463 | -0.032 |
| predicted_SO | 0.297 | -0.002 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.191 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 2.418 | 0.000 |
| predicted_AVG | 0.244 | -0.076 |
| predicted_BB | 0.190 | 0.002 |
| predicted_H | 0.591 | 0.008 |
| predicted_HBP | 0.008 | 0.000 |
| predicted_HR | 0.056 | 0.000 |
| predicted_OBP | 0.300 | -0.049 |
| predicted_R | 0.258 | 0.007 |
| predicted_RBI | 0.252 | 0.007 |
| predicted_SLG | 0.393 | -0.069 |
| predicted_SO | 0.294 | -0.003 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=2.50), rates preserved: AVG=0.225 HR/AB=0.022
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 0.000 | - |
Sample-size BvP blend (BvP AB=13.0, weight=0.121, BvP AVG=0.154)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 0.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.152 | 0.152 |
| 3B | 0.009 | 0.009 |
| BB | 0.177 | 0.177 |
| H | 0.756 | -0.244 |
| HR | 0.081 | 0.081 |
| RBI | 0.328 | 0.328 |
| SO | 0.491 | 0.491 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.152 |
| 3B | 0.000 | -0.009 |
| AB | 3.000 | 0.000 |
| AVG | 0.244 | - |
| BB | 0.000 | -0.177 |
| H | 1.000 | 0.244 |
| HR | 0.000 | -0.081 |
| OBP | 0.291 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.328 |
| SLG | 0.378 | - |
| SO | 0.000 | -0.491 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.191 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 3.000 | 0.582 |
| predicted_AVG | 0.244 | -0.001 |
| predicted_BB | 0.000 | -0.190 |
| predicted_H | 1.000 | 0.409 |
| predicted_HR | 0.000 | -0.056 |
| predicted_OBP | 0.291 | -0.009 |
| predicted_R | 0.000 | -0.258 |
| predicted_RBI | 0.000 | -0.252 |
| predicted_SLG | 0.378 | -0.015 |
| predicted_SO | 0.000 | -0.294 |
KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| AVG | 0.227 | -0.017 |
| BB | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.272 | -0.019 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.352 | -0.026 |
| SO | 0.000 | 0.000 |
Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 1.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 2.000 |
| BB | 0.000 | 0.000 |
| H | 2.000 | 2.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 2.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 8.000 | 2.000 | 1.000 | 0.000 | 0.000 | 1.000 | 1.000 | 2.000 | 1.000 | 0.2500 | 0.4000 | 0.3750 | 0.2500 | 0.0000 | 0.1250 | 0.2500 | 0.1250 |
| last_10 | 0.20 | 10 | - | 21.000 | 6.000 | 2.000 | 0.000 | 1.000 | 3.000 | 3.000 | 3.000 | 2.000 | 0.2857 | 0.3750 | 0.5238 | 0.2857 | 0.0476 | 0.1429 | 0.1429 | 0.0952 |
| season | 0.60 | 98 | - | 226.000 | 61.000 | 17.000 | 0.000 | 4.000 | 23.000 | 22.000 | 13.000 | 27.000 | 0.2699 | 0.3036 | 0.3982 | 0.2699 | 0.0177 | 0.1018 | 0.0575 | 0.1195 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1950 |
| predicted_3B | 0.0010 |
| predicted_AB | 2.3050 |
| predicted_AVG | 0.2668 |
| predicted_BB | 0.2500 |
| predicted_H | 0.6150 |
| predicted_HBP | 0.0080 |
| predicted_HR | 0.0500 |
| predicted_OBP | 0.3337 |
| predicted_R | 0.2630 |
| predicted_RBI | 0.2670 |
| predicted_SLG | 0.4174 |
| predicted_SO | 0.2940 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1880 | 0.1950 | 0.1909 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 2.5000 | 2.3050 | 2.4184 | model_form_blend |
| predicted_AVG | 0.3590 | 0.2668 | 0.3204 | model_form_blend |
| predicted_BB | 0.1440 | 0.2500 | 0.1883 | model_form_blend |
| predicted_H | 0.5600 | 0.6150 | 0.5830 | model_form_blend |
| predicted_HBP | - | 0.0080 | 0.0080 | form_only |
| predicted_HR | 0.0600 | 0.0500 | 0.0558 | model_form_blend |
| predicted_OBP | 0.3590 | 0.3337 | 0.3484 | model_form_blend |
| predicted_R | 0.2430 | 0.2630 | 0.2514 | model_form_blend |
| predicted_RBI | 0.2300 | 0.2670 | 0.2455 | model_form_blend |
| predicted_SLG | 0.4950 | 0.4174 | 0.4625 | model_form_blend |
| predicted_SO | 0.2990 | 0.2940 | 0.2969 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 251 |
| Season rows before report date | 251 |
| Report year | 2026 |
| Profile rows used | 98 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 2 |
| 2B | 1 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 1 |
| Hitting_3B | 0 |
| Hitting_AB | 1 |
| Hitting_AVG | 1.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 2 |
| Hitting_battingOrder | 8 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 3B |
| gameID | 20261004_ATL@LAD |
| game_type | short |
| mlbID | 500743 |
| playerID | 500743 |
| playerName | Miguel Rojas |
| pos | 2B |
| started | True |
| startingPosition | 3B |
| team | LAD |
| teamID | 14 |
| game_date | 2026-10-04 |
| sl_k_percent | 10.7 |
| sl_bb_percent | 6.3 |
| sl_woba | 0.306 |
| sl_xwoba | 0.309 |
| sl_xba | 0.277 |
| sl_xslg | 0.386 |
| sl_sweet_spot_percent | 36.2 |
| sl_barrel_batted_rate | 4.8 |
| sl_hard_hit_percent | 36.2 |
| sl_exit_velocity_avg | 87.3 |
| sl_launch_angle_avg | 14.6 |
| sl_whiff_percent | 17.0 |
| sl_swing_percent | 48.8 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.187 | 0.000 | 0.000 | Hitting_2B | 0.199 | 0.000 | -0.199 | 0.000 |
| predicted_3B | 0.015 | 0.000 | 0.000 | Hitting_3B | 0.018 | 0.000 | -0.018 | 0.000 |
| predicted_AB | 4.520 | 4.000 | 4.000 | Hitting_AB | 3.957 | 3.000 | 0.043 | 1.000 |
| predicted_AVG | 0.201 | 0.000 | 0.000 | Hitting_AVG | 0.275 | 0.000 | -0.275 | 0.000 |
| predicted_BB | 0.373 | 0.000 | 0.000 | Hitting_BB | 0.381 | 1.000 | -0.381 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.054 | 0.000 | -0.054 | 0.000 |
| predicted_H | 0.910 | 0.000 | 0.000 | Hitting_H | 1.088 | 0.000 | -1.088 | 0.000 |
| predicted_HR | 0.200 | 0.000 | 0.000 | Hitting_HR | 0.174 | 0.000 | -0.174 | 0.000 |
| predicted_OBP | 0.331 | 0.200 | 0.200 | Hitting_OBP | 0.342 | 0.250 | -0.142 | -0.050 |
| predicted_R | 0.560 | 1.000 | 1.000 | Hitting_R | 0.624 | 0.000 | 0.376 | 1.000 |
| predicted_RBI | 0.720 | 0.000 | 0.000 | Hitting_RBI | 0.653 | 0.000 | -0.653 | 0.000 |
| predicted_SLG | 0.433 | 0.000 | 0.000 | Hitting_SLG | 0.466 | 0.000 | -0.466 | 0.000 |
| predicted_SO | 0.858 | 1.000 | 1.000 | Hitting_SO | 0.843 | 1.000 | 0.157 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 12 |
| Boosted Metrics | 4 |
| Deboosted Metrics | 8 |
| Better Metrics | 3 |
| Worse Metrics | 9 |
| Biggest Boost | predicted_HBP: 0.0730 -> 1.0000 (boost 0.9270, better) |
| Biggest Deboost | predicted_H: 0.9100 -> 0.0000 (deboost -0.9100, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 3 | 1 | 2 | 2 | predicted_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. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 3 | 5 | 2 | 6 | predicted_RBI: 0.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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.000) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5456 -> 1.0000 (boost 0.4544, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 3 | 3 | 4 | 2 | predicted_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 |
| 9 | lineup_integer_allocation | 9 | 6 | 3 | 5 | 4 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 12 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated |
| 13 | play_by_play_realization | 4 | 2 | 2 | 2 | 2 | predicted_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 |
| 14 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 15 | current_json_final | 1 | 1 | 0 | 1 | 0 | predicted_OBP: 0.2850 -> 0.2950 (boost 0.0100, better) | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.187 | - |
| predicted_3B | 0.015 | - |
| predicted_AB | 4.520 | - |
| predicted_AVG | 0.201 | - |
| predicted_BB | 0.373 | - |
| predicted_H | 0.910 | - |
| predicted_HR | 0.200 | - |
| predicted_OBP | 0.331 | - |
| predicted_R | 0.560 | - |
| predicted_RBI | 0.720 | - |
| predicted_SLG | 0.433 | - |
| predicted_SO | 0.858 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.162 | -0.025 |
| predicted_3B | 0.012 | -0.003 |
| predicted_AB | 4.107 | -0.412 |
| predicted_AVG | 0.220 | 0.019 |
| predicted_BB | 0.405 | 0.032 |
| predicted_H | 0.895 | -0.015 |
| predicted_HBP | 0.073 | - |
| predicted_HR | 0.211 | 0.011 |
| predicted_OBP | 0.332 | 0.001 |
| predicted_R | 0.531 | -0.029 |
| predicted_RBI | 0.701 | -0.019 |
| predicted_SLG | 0.452 | 0.019 |
| predicted_SO | 0.944 | 0.086 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.162 | 0.000 |
| predicted_3B | 0.012 | 0.000 |
| predicted_AB | 4.107 | 0.000 |
| predicted_AVG | 0.221 | 0.001 |
| predicted_BB | 0.409 | 0.004 |
| predicted_H | 0.908 | 0.013 |
| predicted_HBP | 0.073 | 0.000 |
| predicted_HR | 0.213 | 0.001 |
| predicted_OBP | 0.292 | -0.041 |
| predicted_R | 0.546 | 0.015 |
| predicted_RBI | 0.721 | 0.019 |
| predicted_SLG | 0.422 | -0.030 |
| predicted_SO | 0.935 | -0.010 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=4.52), rates preserved: AVG=0.191 HR/AB=0.047
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.000)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.158 | 0.158 |
| 3B | 0.013 | 0.013 |
| BB | 0.265 | 0.265 |
| H | 0.838 | -0.162 |
| HR | 0.147 | 0.147 |
| RBI | 0.502 | -0.498 |
| SO | 0.841 | -0.159 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.158 |
| 3B | 0.000 | -0.013 |
| AB | 3.000 | 0.000 |
| AVG | 0.244 | - |
| BB | 0.000 | -0.265 |
| H | 1.000 | 0.162 |
| HR | 0.000 | -0.147 |
| OBP | 0.304 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.498 |
| SLG | 0.427 | - |
| SO | 1.000 | 0.159 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.162 |
| predicted_3B | 0.000 | -0.012 |
| predicted_AB | 3.000 | -1.107 |
| predicted_AVG | 0.244 | 0.023 |
| predicted_BB | 0.000 | -0.409 |
| predicted_H | 1.000 | 0.092 |
| predicted_HR | 0.000 | -0.213 |
| predicted_OBP | 0.304 | 0.012 |
| predicted_R | 1.000 | 0.454 |
| predicted_RBI | 1.000 | 0.279 |
| predicted_SLG | 0.427 | 0.005 |
| predicted_SO | 1.000 | 0.065 |
KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| AVG | 0.227 | -0.017 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.285 | -0.019 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SLG | 0.397 | -0.030 |
| SO | 1.000 | 0.000 |
Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 1.000 | 1.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -1.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | 0.000 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 16.000 | 3.000 | 0.000 | 0.000 | 2.000 | 5.000 | 2.000 | 3.000 | 7.000 | 0.1875 | 0.3000 | 0.5625 | 0.1875 | 0.1250 | 0.3125 | 0.1875 | 0.4375 |
| last_10 | 0.20 | 10 | - | 31.000 | 7.000 | 1.000 | 0.000 | 2.000 | 5.000 | 4.000 | 5.000 | 12.000 | 0.2258 | 0.3590 | 0.4516 | 0.2258 | 0.0645 | 0.1613 | 0.1613 | 0.3871 |
| season | 0.60 | 134 | - | 514.000 | 139.000 | 25.000 | 2.000 | 23.000 | 84.000 | 75.000 | 50.000 | 115.000 | 0.2704 | 0.3397 | 0.4611 | 0.2704 | 0.0447 | 0.1634 | 0.0973 | 0.2237 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1290 |
| predicted_3B | 0.0090 |
| predicted_AB | 3.5730 |
| predicted_AVG | 0.2451 |
| predicted_BB | 0.4470 |
| predicted_H | 0.8760 |
| predicted_HBP | 0.0730 |
| predicted_HR | 0.2260 |
| predicted_OBP | 0.3341 |
| predicted_R | 0.4930 |
| predicted_RBI | 0.6770 |
| predicted_SLG | 0.4759 |
| predicted_SO | 1.0560 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1870 | 0.1290 | 0.1617 | model_form_blend |
| predicted_3B | 0.0150 | 0.0090 | 0.0124 | model_form_blend |
| predicted_AB | 4.5200 | 3.5730 | 4.1075 | model_form_blend |
| predicted_AVG | 0.2010 | 0.2451 | 0.2202 | model_form_blend |
| predicted_BB | 0.3730 | 0.4470 | 0.4052 | model_form_blend |
| predicted_H | 0.9100 | 0.8760 | 0.8952 | model_form_blend |
| predicted_HBP | - | 0.0730 | 0.0730 | form_only |
| predicted_HR | 0.2000 | 0.2260 | 0.2113 | model_form_blend |
| predicted_OBP | 0.3310 | 0.3341 | 0.3324 | model_form_blend |
| predicted_R | 0.5600 | 0.4930 | 0.5308 | model_form_blend |
| predicted_RBI | 0.7200 | 0.6770 | 0.7013 | model_form_blend |
| predicted_SLG | 0.4330 | 0.4759 | 0.4517 | model_form_blend |
| predicted_SO | 0.8580 | 1.0560 | 0.9442 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 559 |
| Season rows before report date | 559 |
| Report year | 2026 |
| Profile rows used | 134 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 1 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 7 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | CF |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 681624 |
| playerID | 681624 |
| playerName | Andy Pages |
| pos | CF |
| started | True |
| startingPosition | CF |
| team | LAD |
| teamID | 14 |
| game_date | 2026-10-04 |
| sl_k_percent | 19.7 |
| sl_bb_percent | 8.5 |
| sl_woba | 0.352 |
| sl_xwoba | 0.343 |
| sl_xba | 0.274 |
| sl_xslg | 0.442 |
| sl_sweet_spot_percent | 37.4 |
| sl_barrel_batted_rate | 7.9 |
| sl_hard_hit_percent | 42.3 |
| sl_exit_velocity_avg | 88.9 |
| sl_launch_angle_avg | 15.7 |
| sl_whiff_percent | 22.1 |
| sl_swing_percent | 47.2 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.151 | 1.000 | 1.000 | Hitting_2B | 0.168 | 0.000 | 0.832 | 1.000 |
| predicted_3B | 0.026 | 0.000 | 0.000 | Hitting_3B | 0.030 | 0.000 | -0.030 | 0.000 |
| predicted_AB | 3.630 | 3.000 | 3.000 | Hitting_AB | 3.695 | 4.000 | -0.695 | -1.000 |
| predicted_AVG | 0.239 | 0.333 | 0.333 | Hitting_AVG | 0.240 | 0.250 | 0.094 | 0.083 |
| predicted_BB | 0.480 | 1.000 | 1.000 | Hitting_BB | 0.522 | 0.000 | 0.478 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.870 | 1.000 | 1.000 | Hitting_H | 0.885 | 1.000 | 0.115 | 0.000 |
| predicted_HR | 0.130 | 0.000 | 0.000 | Hitting_HR | 0.122 | 0.000 | -0.122 | 0.000 |
| predicted_OBP | 0.311 | 0.500 | 0.500 | Hitting_OBP | 0.333 | 0.250 | 0.167 | 0.250 |
| predicted_R | 0.592 | 0.000 | 0.000 | Hitting_R | 0.632 | 0.000 | -0.632 | 0.000 |
| predicted_RBI | 0.410 | 1.000 | 1.000 | Hitting_RBI | 0.515 | 0.000 | 0.485 | 1.000 |
| predicted_SLG | 0.392 | 0.667 | 0.667 | Hitting_SLG | 0.400 | 0.250 | 0.267 | 0.417 |
| predicted_SO | 0.697 | 0.000 | 0.000 | Hitting_SO | 0.723 | 0.000 | -0.723 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 4 |
| Deboosted Metrics | 7 |
| Better Metrics | 5 |
| Worse Metrics | 6 |
| Biggest Boost | predicted_2B: 0.1510 -> 1.0000 (boost 0.8490, better) |
| Biggest Deboost | predicted_SO: 0.6970 -> 0.0000 (deboost -0.6970, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 2 | 0 | 2 | 0 | predicted_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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 2 | 5 | 1 | 6 | predicted_SO: 0.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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.083) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5910 -> 1.0000 (boost 0.4090, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_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 |
| 9 | lineup_integer_allocation | 9 | 2 | 7 | 1 | 8 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 12 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated |
| 13 | play_by_play_realization | 5 | 3 | 2 | 4 | 1 | predicted_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 |
| 14 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 15 | current_json_final | 2 | 2 | 0 | 2 | 0 | predicted_OBP: 0.2760 -> 0.2840 (boost 0.0080, better) | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.151 | - |
| predicted_3B | 0.026 | - |
| predicted_AB | 3.630 | - |
| predicted_AVG | 0.239 | - |
| predicted_BB | 0.480 | - |
| predicted_H | 0.870 | - |
| predicted_HR | 0.130 | - |
| predicted_OBP | 0.311 | - |
| predicted_R | 0.592 | - |
| predicted_RBI | 0.410 | - |
| predicted_SLG | 0.392 | - |
| predicted_SO | 0.697 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.127 | -0.024 |
| predicted_3B | 0.022 | -0.004 |
| predicted_AB | 3.647 | 0.018 |
| predicted_AVG | 0.240 | 0.001 |
| predicted_BB | 0.431 | -0.049 |
| predicted_H | 0.877 | 0.007 |
| predicted_HBP | 0.013 | - |
| predicted_HR | 0.130 | 0.000 |
| predicted_OBP | 0.311 | -0.000 |
| predicted_R | 0.575 | -0.017 |
| predicted_RBI | 0.410 | -0.000 |
| predicted_SLG | 0.388 | -0.004 |
| predicted_SO | 0.692 | -0.005 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.127 | 0.000 |
| predicted_3B | 0.022 | 0.000 |
| predicted_AB | 3.647 | 0.000 |
| predicted_AVG | 0.244 | 0.004 |
| predicted_BB | 0.435 | 0.004 |
| predicted_H | 0.890 | 0.013 |
| predicted_HBP | 0.013 | 0.000 |
| predicted_HR | 0.131 | 0.001 |
| predicted_OBP | 0.325 | 0.014 |
| predicted_R | 0.591 | 0.016 |
| predicted_RBI | 0.421 | 0.011 |
| predicted_SLG | 0.398 | 0.010 |
| predicted_SO | 0.685 | -0.007 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.65), rates preserved: AVG=0.232 HR/AB=0.036
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.083)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.150 | 0.150 |
| 3B | 0.019 | 0.019 |
| BB | 0.296 | 0.296 |
| H | 0.794 | -0.206 |
| HR | 0.109 | 0.109 |
| RBI | 0.483 | 0.483 |
| SO | 0.887 | -0.113 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.150 |
| 3B | 0.000 | -0.019 |
| AB | 3.000 | 0.000 |
| AVG | 0.228 | - |
| BB | 0.000 | -0.296 |
| H | 1.000 | 0.206 |
| HR | 0.000 | -0.109 |
| OBP | 0.294 | - |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.483 |
| SLG | 0.376 | - |
| SO | 1.000 | 0.113 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.127 |
| predicted_3B | 0.000 | -0.022 |
| predicted_AB | 3.000 | -0.647 |
| predicted_AVG | 0.228 | -0.016 |
| predicted_BB | 0.000 | -0.435 |
| predicted_H | 1.000 | 0.110 |
| predicted_HR | 0.000 | -0.131 |
| predicted_OBP | 0.294 | -0.031 |
| predicted_R | 1.000 | 0.409 |
| predicted_RBI | 0.000 | -0.421 |
| predicted_SLG | 0.376 | -0.022 |
| predicted_SO | 1.000 | 0.315 |
KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| AVG | 0.212 | -0.016 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.276 | -0.018 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.350 | -0.026 |
| SO | 1.000 | 0.000 |
Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 1.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 1.000 | 1.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | -1.000 |
| RBI | 1.000 | 1.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 1.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 20.000 | 5.000 | 0.000 | 0.000 | 1.000 | 2.000 | 3.000 | 1.000 | 4.000 | 0.2500 | 0.2857 | 0.4000 | 0.2500 | 0.0500 | 0.1000 | 0.0500 | 0.2000 |
| last_10 | 0.20 | 10 | - | 36.000 | 9.000 | 0.000 | 0.000 | 1.000 | 2.000 | 4.000 | 2.000 | 5.000 | 0.2500 | 0.2895 | 0.3333 | 0.2500 | 0.0278 | 0.0556 | 0.0556 | 0.1389 |
| season | 0.60 | 152 | - | 543.000 | 128.000 | 23.000 | 4.000 | 18.000 | 72.000 | 90.000 | 73.000 | 106.000 | 0.2357 | 0.3264 | 0.3923 | 0.2357 | 0.0331 | 0.1326 | 0.1344 | 0.1952 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0970 |
| predicted_3B | 0.0160 |
| predicted_AB | 3.6700 |
| predicted_AVG | 0.2417 |
| predicted_BB | 0.3680 |
| predicted_H | 0.8870 |
| predicted_HBP | 0.0130 |
| predicted_HR | 0.1300 |
| predicted_OBP | 0.3106 |
| predicted_R | 0.5530 |
| predicted_RBI | 0.4090 |
| predicted_SLG | 0.3832 |
| predicted_SO | 0.6850 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1510 | 0.0970 | 0.1274 | model_form_blend |
| predicted_3B | 0.0260 | 0.0160 | 0.0216 | model_form_blend |
| predicted_AB | 3.6300 | 3.6700 | 3.6475 | model_form_blend |
| predicted_AVG | 0.2390 | 0.2417 | 0.2402 | model_form_blend |
| predicted_BB | 0.4800 | 0.3680 | 0.4311 | model_form_blend |
| predicted_H | 0.8700 | 0.8870 | 0.8774 | model_form_blend |
| predicted_HBP | - | 0.0130 | 0.0130 | form_only |
| predicted_HR | 0.1300 | 0.1300 | 0.1300 | model_form_blend |
| predicted_OBP | 0.3110 | 0.3106 | 0.3108 | model_form_blend |
| predicted_R | 0.5920 | 0.5530 | 0.5750 | model_form_blend |
| predicted_RBI | 0.4100 | 0.4090 | 0.4096 | model_form_blend |
| predicted_SLG | 0.3920 | 0.3832 | 0.3882 | model_form_blend |
| predicted_SO | 0.6970 | 0.6850 | 0.6918 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 600 |
| Season rows before report date | 600 |
| Report year | 2026 |
| Profile rows used | 152 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 1 |
| 2B | 1 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 1 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.25 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 6 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | RF |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 663656 |
| playerID | 663656 |
| playerName | Kyle Tucker |
| pos | RF |
| started | True |
| startingPosition | RF |
| team | LAD |
| teamID | 14 |
| game_date | 2026-10-04 |
| sl_k_percent | 16.7 |
| sl_bb_percent | 12.4 |
| sl_woba | 0.318 |
| sl_xwoba | 0.331 |
| sl_xba | 0.256 |
| sl_xslg | 0.393 |
| sl_sweet_spot_percent | 34.2 |
| sl_barrel_batted_rate | 6.4 |
| sl_hard_hit_percent | 36.3 |
| sl_exit_velocity_avg | 88.5 |
| sl_launch_angle_avg | 18.1 |
| sl_whiff_percent | 20.8 |
| sl_swing_percent | 48.5 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.111 | 0.000 | 0.000 | Hitting_2B | 0.099 | 0.000 | -0.099 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 2.500 | 4.000 | 4.000 | Hitting_AB | 2.582 | 0.000 | 1.418 | 4.000 |
| predicted_AVG | 0.200 | 0.250 | 0.250 | Hitting_AVG | 0.226 | - | 0.024 | - |
| predicted_BB | 0.167 | 0.000 | 0.000 | Hitting_BB | 0.209 | 0.000 | -0.209 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.200 | 1.000 | 1.000 | Hitting_H | 0.582 | 0.000 | 0.418 | 1.000 |
| predicted_HR | 0.070 | 1.000 | 1.000 | Hitting_HR | 0.121 | 0.000 | 0.879 | 1.000 |
| predicted_OBP | 0.244 | 0.250 | 0.250 | Hitting_OBP | 0.283 | - | -0.033 | - |
| predicted_R | 0.333 | 1.000 | 1.000 | Hitting_R | 0.385 | 0.000 | 0.615 | 1.000 |
| predicted_RBI | 0.150 | 1.000 | 1.000 | Hitting_RBI | 0.418 | 0.000 | 0.582 | 1.000 |
| predicted_SLG | 0.368 | 1.000 | 1.000 | Hitting_SLG | 0.404 | - | 0.596 | - |
| predicted_SO | 0.778 | 1.000 | 1.000 | Hitting_SO | 0.868 | 0.000 | 0.132 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 11 |
| Boosted Metrics | 9 |
| Deboosted Metrics | 2 |
| Better Metrics | 8 |
| Worse Metrics | 3 |
| Biggest Boost | predicted_AB: 2.5000 -> 4.0000 (boost 1.5000, better) |
| Biggest Deboost | predicted_BB: 0.1670 -> 0.0000 (deboost -0.1670, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 6 | 6 | 0 | 6 | 0 | predicted_AB: 2.5000 -> 2.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. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 2 | 5 | 1 | 6 | predicted_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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.167) |
| 7 | consistency_constraints | 2 | 1 | 1 | 1 | 1 | predicted_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 |
| 8 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_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 |
| 9 | lineup_integer_allocation | 9 | 3 | 6 | 4 | 5 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 12 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Market blend not applied: no props for this hitter |
| 13 | play_by_play_realization | 5 | 5 | 0 | 5 | 0 | predicted_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 |
| 14 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 15 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.111 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 2.500 | - |
| predicted_AVG | 0.200 | - |
| predicted_BB | 0.167 | - |
| predicted_H | 0.200 | - |
| predicted_HR | 0.070 | - |
| predicted_OBP | 0.244 | - |
| predicted_R | 0.333 | - |
| predicted_RBI | 0.150 | - |
| predicted_SLG | 0.368 | - |
| predicted_SO | 0.778 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.127 | 0.016 |
| predicted_3B | 0.001 | 0.001 |
| predicted_AB | 2.693 | 0.193 |
| predicted_AVG | 0.211 | 0.011 |
| predicted_BB | 0.163 | -0.004 |
| predicted_H | 0.385 | 0.185 |
| predicted_HBP | 0.006 | - |
| predicted_HR | 0.098 | 0.028 |
| predicted_OBP | 0.253 | 0.009 |
| predicted_R | 0.340 | 0.007 |
| predicted_RBI | 0.258 | 0.108 |
| predicted_SLG | 0.390 | 0.022 |
| predicted_SO | 0.778 | -0.000 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.127 | 0.000 |
| predicted_3B | 0.001 | 0.000 |
| predicted_AB | 2.693 | 0.000 |
| predicted_AVG | 0.145 | -0.066 |
| predicted_BB | 0.164 | 0.002 |
| predicted_H | 0.391 | 0.006 |
| predicted_HBP | 0.006 | 0.000 |
| predicted_HR | 0.099 | 0.001 |
| predicted_OBP | 0.194 | -0.059 |
| predicted_R | 0.349 | 0.009 |
| predicted_RBI | 0.266 | 0.007 |
| predicted_SLG | 0.303 | -0.087 |
| predicted_SO | 0.770 | -0.008 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=2.69), rates preserved: AVG=0.138 HR/AB=0.037
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 0.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.167)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.154 | 0.154 |
| 3B | 0.011 | 0.011 |
| BB | 0.210 | 0.210 |
| H | 0.727 | -0.273 |
| HR | 0.116 | 0.116 |
| RBI | 0.375 | 0.375 |
| SO | 1.078 | 0.078 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.154 |
| 3B | 0.000 | -0.011 |
| AB | 3.000 | 0.000 |
| AVG | 0.235 | - |
| BB | 0.000 | -0.210 |
| H | 0.000 | -0.727 |
| HR | 0.000 | -0.116 |
| OBP | 0.290 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.375 |
| SLG | 0.405 | - |
| SO | 1.000 | -0.078 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.127 |
| predicted_3B | 0.000 | -0.001 |
| predicted_AB | 3.000 | 0.307 |
| predicted_AVG | 0.235 | 0.090 |
| predicted_BB | 0.000 | -0.164 |
| predicted_H | 0.000 | -0.391 |
| predicted_HR | 0.000 | -0.099 |
| predicted_OBP | 0.290 | 0.096 |
| predicted_R | 0.000 | -0.349 |
| predicted_RBI | 0.000 | -0.266 |
| predicted_SLG | 0.405 | 0.102 |
| predicted_SO | 1.000 | 0.230 |
KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| AVG | 0.219 | -0.016 |
| BB | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.271 | -0.019 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.376 | -0.029 |
| SO | 1.000 | 0.000 |
Market blend not applied: no props for this hitter
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 1.000 | 1.000 |
| PA | 4.000 | - |
| R | 1.000 | 1.000 |
| RBI | 1.000 | 1.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 1.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 16.000 | 3.000 | 1.000 | 0.000 | 1.000 | 2.000 | 1.000 | 0.000 | 3.000 | 0.1875 | 0.1875 | 0.4375 | 0.1875 | 0.0625 | 0.1250 | 0.0000 | 0.1875 |
| last_10 | 0.20 | 10 | - | 31.000 | 8.000 | 2.000 | 0.000 | 2.000 | 7.000 | 3.000 | 1.000 | 7.000 | 0.2581 | 0.2812 | 0.5161 | 0.2581 | 0.0645 | 0.2258 | 0.0323 | 0.2258 |
| season | 0.60 | 36 | - | 90.000 | 20.000 | 4.000 | 0.000 | 4.000 | 12.000 | 12.000 | 6.000 | 28.000 | 0.2222 | 0.2708 | 0.4000 | 0.2222 | 0.0444 | 0.1333 | 0.0667 | 0.3111 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1530 |
| predicted_3B | 0.0030 |
| predicted_AB | 3.0080 |
| predicted_AVG | 0.2285 |
| predicted_BB | 0.1560 |
| predicted_H | 0.6870 |
| predicted_HBP | 0.0060 |
| predicted_HR | 0.1440 |
| predicted_OBP | 0.2679 |
| predicted_R | 0.3500 |
| predicted_RBI | 0.4350 |
| predicted_SLG | 0.4251 |
| predicted_SO | 0.7770 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1110 | 0.1530 | 0.1270 | model_form_blend |
| predicted_3B | 0.0000 | 0.0030 | 0.0011 | model_form_blend |
| predicted_AB | 2.5000 | 3.0080 | 2.6932 | model_form_blend |
| predicted_AVG | 0.2000 | 0.2285 | 0.2108 | model_form_blend |
| predicted_BB | 0.1670 | 0.1560 | 0.1628 | model_form_blend |
| predicted_H | 0.2000 | 0.6870 | 0.3852 | model_form_blend |
| predicted_HBP | - | 0.0060 | 0.0060 | form_only |
| predicted_HR | 0.0700 | 0.1440 | 0.0981 | model_form_blend |
| predicted_OBP | 0.2440 | 0.2679 | 0.2531 | model_form_blend |
| predicted_R | 0.3330 | 0.3500 | 0.3395 | model_form_blend |
| predicted_RBI | 0.1500 | 0.4350 | 0.2584 | model_form_blend |
| predicted_SLG | 0.3680 | 0.4251 | 0.3897 | model_form_blend |
| predicted_SO | 0.7780 | 0.7770 | 0.7776 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 91 |
| Season rows before report date | 91 |
| Report year | 2026 |
| Profile rows used | 36 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 1 |
| R | 1 |
| RBI | 1 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 5 |
| Hitting_substitutionOrder | 1 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | LF |
| gameID | 20261003_ATL@LAD |
| game_type | short |
| mlbID | 571771 |
| playerID | 571771 |
| playerName | Enrique Hernández |
| pos | 3B |
| started | False |
| startingPosition | LF |
| team | LAD |
| teamID | 14 |
| game_date | 2026-10-03 |
| sl_k_percent | 29.2 |
| sl_bb_percent | 6.3 |
| sl_woba | 0.293 |
| sl_xwoba | 0.279 |
| sl_xba | 0.22 |
| sl_xslg | 0.367 |
| sl_sweet_spot_percent | 27.4 |
| sl_barrel_batted_rate | 8.1 |
| sl_hard_hit_percent | 40.3 |
| sl_exit_velocity_avg | 89.0 |
| sl_launch_angle_avg | 10.9 |
| sl_whiff_percent | 25.0 |
| sl_swing_percent | 52.6 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 1.000 | 1.000 | 1.000 | Pitching_BB | 1.500 | 1.000 | -0.500 | 0.000 |
| predicted_ER | 1.000 | 1.000 | 1.000 | Pitching_ER | 1.857 | 2.000 | -0.857 | -1.000 |
| predicted_H | 3.000 | 3.000 | 3.000 | Pitching_H | 4.250 | 5.000 | -1.250 | -2.000 |
| predicted_IP | 6.100 | 6.100 | 6.100 | Pitching_InningsPitched | 6.532 | 6.000 | -0.432 | 0.100 |
| predicted_SO | 4.000 | 4.000 | 4.000 | Pitching_SO | 6.500 | 4.000 | -2.500 | 0.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_rate_projection |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 5 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 5 |
| Better Metrics | 3 |
| Worse Metrics | 2 |
| Biggest Boost | - |
| Biggest Deboost | predicted_H: 6.0000 -> 3.0000 (deboost -3.0000, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_rate_projection | 0 | 0 | 0 | 0 | 0 | - | - | Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty |
| 2 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 3 | team_form_adjustment | 0 | 0 | 0 | 0 | 0 | - | - | Club form: innings, run prevention and strikeout factors |
| 4 | savant_pitcher_quality | 0 | 0 | 0 | 0 | 0 | - | - | Statcast pitch quality: strikeout, walk, home-run and run-prevention factors |
| 5 | opposing_lineup_context | 0 | 0 | 0 | 0 | 0 | - | - | The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances |
| 6 | kpi_run_environment | 0 | 0 | 0 | 0 | 0 | - | - | KPI blend published; the staff line follows the published score, not a KPI rescale |
| 7 | pitcher_quality_guardrail | 1 | 0 | 1 | 0 | 1 | - | 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. |
| 8 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score |
| 9 | play_by_play_realization | 5 | 0 | 5 | 3 | 2 | - | 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 |
| 10 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
| Metric | Value | Delta vs Prev Step |
|---|
Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 2.000 | - |
| predicted_ER | 3.000 | - |
| predicted_H | 6.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 6.667 | - |
| predicted_SO | 7.000 | - |
Club form: innings, run prevention and strikeout factors
| Metric | Value | Delta vs Prev Step |
|---|
Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
| Metric | Value | Delta vs Prev Step |
|---|
The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances
| Metric | Value | Delta vs Prev Step |
|---|
KPI blend published; the staff line follows the published score, not a KPI rescale
| Metric | Value | Delta vs Prev Step |
|---|
Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 2.000 | 0.000 |
| predicted_ER | 3.000 | 0.000 |
| predicted_H | 6.000 | 0.000 |
| predicted_HR | 0.000 | 0.000 |
| predicted_IP | 6.200 | -0.467 |
| predicted_SO | 7.000 | 0.000 |
Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| BB | 1.000 | - |
| BF | 23.000 | - |
| ER | 1.000 | - |
| H | 3.000 | - |
| HR | 0.000 | - |
| IP | 6.100 | - |
| Pitches | 81.000 | - |
| R | 1.000 | - |
| SO | 4.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 33.100 | 8.000 | 18.000 | 7.000 | 37.000 | 5.000 | 2.1600 | 0.7500 | 0.2400 | 0.5400 | 0.2100 | 1.1100 | 0.1500 |
| last_10 | 0.35 | 10 | 65.100 | 15.000 | 39.000 | 17.000 | 69.000 | 7.000 | 2.0663 | 0.8571 | 0.2296 | 0.5969 | 0.2602 | 1.0561 | 0.1071 |
| season | 0.20 | 28 | 185.000 | 52.000 | 119.000 | 42.000 | 182.000 | 20.000 | 2.5297 | 0.8703 | 0.2811 | 0.6432 | 0.2270 | 0.9838 | 0.1081 |
| Metric | Value |
|---|---|
| predicted_BB | 1.6910 |
| predicted_ER | 1.9020 |
| predicted_ERA | 2.5672 |
| predicted_H | 4.2780 |
| predicted_HR | 0.8660 |
| predicted_IP | 6.2000 |
| predicted_SO | 6.9720 |
| predicted_WHIP | 0.8954 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 2.0000 | 1.6910 | 1.8189 | model_form_blend |
| predicted_ER | 3.0000 | 1.9020 | 2.3566 | model_form_blend |
| predicted_ERA | - | 2.5672 | 2.5672 | form_only |
| predicted_H | 6.0000 | 4.2780 | 4.9909 | model_form_blend |
| predicted_HR | 0.0000 | 0.8660 | 0.5075 | model_form_blend |
| predicted_IP | 6.2000 | 6.2000 | 6.2000 | model_form_blend |
| predicted_SO | 7.0000 | 6.9720 | 6.9836 | model_form_blend |
| predicted_WHIP | - | 0.8954 | 0.8954 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 28 |
| Season rows before report date | 28 |
| Report year | 2026 |
| Profile rows used | 28 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 6.1 |
| H | 3 |
| R | 1 |
| ER | 1 |
| BB | 1 |
| SO | 4 |
| HR | 0 |
| BF | 23 |
| Pitches | 81 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 1 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 1 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 26 |
| Pitching_ER | 2 |
| Pitching_ERA | 2.53 |
| Pitching_Flyouts | 2 |
| Pitching_Groundouts | 8 |
| Pitching_H | 5 |
| Pitching_HBP | 1 |
| Pitching_HR | 1 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 6.0 |
| Pitching_Pitches | 88 |
| Pitching_R | 4 |
| Pitching_SO | 4 |
| Pitching_Strikes | 63 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | L |
| Pitching_pitchingOrder | 1 |
| allPositionsPlayed | P |
| gameID | 20260923_SD@LAD |
| game_type | full |
| mlbID | 808967 |
| playerID | 808967 |
| playerName | Yoshinobu Yamamoto |
| pos | P |
| started | True |
| startingPosition | P |
| team | LAD |
| teamID | 14 |
| game_date | 2026-09-23 |
| sl_k_percent | 25.7 |
| sl_bb_percent | 5.9 |
| sl_woba | 0.242 |
| sl_xwoba | 0.266 |
| sl_sweet_spot_percent | 29.1 |
| sl_barrel_batted_rate | 6.5 |
| sl_hard_hit_percent | 35.5 |
| sl_whiff_percent | 27.9 |
| sl_swing_percent | 49.6 |
| sl_avg_best_speed | 76.04979859 |
| sl_avg_hyper_speed | 93.786488889 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.333 | 0.000 | -0.333 | 0.000 |
| predicted_ER | 1.000 | 1.000 | 1.000 | Pitching_ER | 0.267 | 0.000 | 0.733 | 1.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.567 | 0.000 | 0.433 | 1.000 |
| predicted_IP | 1.000 | 1.000 | 1.000 | Pitching_InningsPitched | 0.840 | 0.100 | 0.160 | 0.900 |
| predicted_SO | 0.000 | 0.000 | 0.000 | Pitching_SO | 0.867 | 0.000 | -0.867 | 0.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_rate_projection |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 4 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 2 |
| Better Metrics | 1 |
| Worse Metrics | 3 |
| Biggest Boost | predicted_ER: 0.0000 -> 1.0000 (boost 1.0000, worse) |
| Biggest Deboost | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_rate_projection | 0 | 0 | 0 | 0 | 0 | - | - | Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty |
| 2 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 3 | team_form_adjustment | 0 | 0 | 0 | 0 | 0 | - | - | Club form: innings, run prevention and strikeout factors |
| 4 | savant_pitcher_quality | 0 | 0 | 0 | 0 | 0 | - | - | Statcast pitch quality: strikeout, walk, home-run and run-prevention factors |
| 5 | opposing_lineup_context | 0 | 0 | 0 | 0 | 0 | - | - | The nine hitters he faces: batter quality, weighted by plate appearances |
| 6 | kpi_run_environment | 0 | 0 | 0 | 0 | 0 | - | - | KPI blend published; the staff line follows the published score, not a KPI rescale |
| 7 | play_by_play_realization | 4 | 2 | 2 | 1 | 3 | predicted_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 |
| 8 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
| Metric | Value | Delta vs Prev Step |
|---|
Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 0.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 1.000 | - |
Club form: innings, run prevention and strikeout factors
| Metric | Value | Delta vs Prev Step |
|---|
Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
| Metric | Value | Delta vs Prev Step |
|---|
The nine hitters he faces: batter quality, weighted by plate appearances
| Metric | Value | Delta vs Prev Step |
|---|
KPI blend published; the staff line follows the published score, not a KPI rescale
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| BB | 0.000 | - |
| BF | 5.000 | - |
| ER | 1.000 | - |
| H | 1.000 | - |
| HR | 0.000 | - |
| IP | 1.000 | - |
| Pitches | 17.000 | - |
| R | 1.000 | - |
| SO | 0.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 4.100 | 1.000 | 2.000 | 1.000 | 5.000 | 0.000 | 2.0769 | 0.6923 | 0.2308 | 0.4615 | 0.2308 | 1.1539 | 0.0000 |
| last_10 | 0.35 | 10 | 9.000 | 3.000 | 7.000 | 2.000 | 8.000 | 0.000 | 3.0000 | 1.0000 | 0.3333 | 0.7778 | 0.2222 | 0.8889 | 0.0000 |
| season | 0.20 | 29 | 28.000 | 7.000 | 16.000 | 10.000 | 26.000 | 2.000 | 2.2500 | 0.9286 | 0.2500 | 0.5714 | 0.3571 | 0.9286 | 0.0714 |
| Metric | Value |
|---|---|
| predicted_BB | 0.3120 |
| predicted_ER | 0.3830 |
| predicted_ERA | 3.4466 |
| predicted_H | 0.7750 |
| predicted_HR | 0.0760 |
| predicted_IP | 1.0000 |
| predicted_SO | 0.9780 |
| predicted_WHIP | 1.0873 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 1.0000 | 0.3120 | 0.6876 | model_form_blend |
| predicted_ER | 0.0000 | 0.3830 | 0.1739 | model_form_blend |
| predicted_ERA | - | 3.4466 | 3.4466 | form_only |
| predicted_H | 0.0000 | 0.7750 | 0.3519 | model_form_blend |
| predicted_HR | 0.0000 | 0.0760 | 0.0345 | model_form_blend |
| predicted_IP | 1.0000 | 1.0000 | 1.0000 | model_form_blend |
| predicted_SO | 1.0000 | 0.9780 | 0.9900 | model_form_blend |
| predicted_WHIP | - | 1.0873 | 1.0873 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 30 |
| Season rows before report date | 30 |
| Report year | 2026 |
| Profile rows used | 29 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.0 |
| H | 1 |
| R | 1 |
| ER | 1 |
| BB | 0 |
| SO | 0 |
| HR | 0 |
| BF | 5 |
| Pitches | 17 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 1 |
| Pitching_ER | 0 |
| Pitching_ERA | 0.00 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 1 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 2 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.1 |
| Pitching_Pitches | 2 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 2 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 2 |
| allPositionsPlayed | P |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 592779 |
| playerID | 592779 |
| playerName | Brock Stewart |
| pos | P |
| started | False |
| startingPosition | P |
| team | LAD |
| teamID | 14 |
| game_date | 2026-10-04 |
| sl_k_percent | 24.3 |
| sl_bb_percent | 9.7 |
| sl_woba | 0.258 |
| sl_xwoba | 0.248 |
| sl_sweet_spot_percent | 23.5 |
| sl_barrel_batted_rate | 4.4 |
| sl_hard_hit_percent | 27.9 |
| sl_whiff_percent | 28.2 |
| sl_swing_percent | 49.2 |
| sl_avg_best_speed | 65.876245588 |
| sl_avg_hyper_speed | 92.388121765 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.212 | 0.000 | -0.212 | 0.000 |
| predicted_ER | 1.000 | 1.000 | 1.000 | Pitching_ER | 0.303 | 0.000 | 0.697 | 1.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.667 | 0.000 | 0.333 | 1.000 |
| predicted_IP | 0.200 | 0.200 | 0.200 | Pitching_InningsPitched | 0.688 | 0.100 | -0.488 | 0.100 |
| predicted_SO | 1.000 | 1.000 | 1.000 | Pitching_SO | 1.000 | 0.000 | 0.000 | 1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_rate_projection |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 4 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 1 |
| Better Metrics | 1 |
| Worse Metrics | 3 |
| Biggest Boost | predicted_ER: 0.0000 -> 1.0000 (boost 1.0000, worse) |
| Biggest Deboost | predicted_IP: 0.6667 -> 0.2000 (deboost -0.4667, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_rate_projection | 0 | 0 | 0 | 0 | 0 | - | - | Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty |
| 2 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 3 | team_form_adjustment | 0 | 0 | 0 | 0 | 0 | - | - | Club form: innings, run prevention and strikeout factors |
| 4 | savant_pitcher_quality | 0 | 0 | 0 | 0 | 0 | - | - | Statcast pitch quality: strikeout, walk, home-run and run-prevention factors |
| 5 | opposing_lineup_context | 0 | 0 | 0 | 0 | 0 | - | - | The nine hitters he faces: batter quality, weighted by plate appearances |
| 6 | kpi_run_environment | 0 | 0 | 0 | 0 | 0 | - | - | KPI blend published; the staff line follows the published score, not a KPI rescale |
| 7 | play_by_play_realization | 4 | 3 | 1 | 1 | 3 | predicted_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 |
| 8 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
| Metric | Value | Delta vs Prev Step |
|---|
Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 1.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 0.667 | - |
| predicted_SO | 0.000 | - |
Club form: innings, run prevention and strikeout factors
| Metric | Value | Delta vs Prev Step |
|---|
Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
| Metric | Value | Delta vs Prev Step |
|---|
The nine hitters he faces: batter quality, weighted by plate appearances
| Metric | Value | Delta vs Prev Step |
|---|
KPI blend published; the staff line follows the published score, not a KPI rescale
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| BB | 0.000 | - |
| BF | 3.000 | - |
| ER | 1.000 | - |
| H | 1.000 | - |
| HR | 1.000 | - |
| IP | 0.200 | - |
| Pitches | 11.000 | - |
| R | 1.000 | - |
| SO | 1.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 3.200 | 1.000 | 1.000 | 1.000 | 5.000 | 0.000 | 2.4545 | 0.5455 | 0.2727 | 0.2727 | 0.2727 | 1.3636 | 0.0000 |
| last_10 | 0.35 | 10 | 8.000 | 2.000 | 3.000 | 2.000 | 11.000 | 1.000 | 2.2500 | 0.6250 | 0.2500 | 0.3750 | 0.2500 | 1.3750 | 0.1250 |
| season | 0.20 | 33 | 26.200 | 10.000 | 22.000 | 7.000 | 33.000 | 5.000 | 3.3750 | 1.0875 | 0.3750 | 0.8250 | 0.2625 | 1.2375 | 0.1875 |
| Metric | Value |
|---|---|
| predicted_BB | 0.2130 |
| predicted_ER | 0.2620 |
| predicted_ERA | 3.5426 |
| predicted_H | 0.4590 |
| predicted_HR | 0.0750 |
| predicted_IP | 0.2000 |
| predicted_SO | 0.7650 |
| predicted_WHIP | 1.0069 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.2130 | 0.0956 | model_form_blend |
| predicted_ER | 0.0000 | 0.2620 | 0.1176 | model_form_blend |
| predicted_ERA | - | 3.5426 | 3.5426 | form_only |
| predicted_H | 1.0000 | 0.4590 | 0.7571 | model_form_blend |
| predicted_HR | 0.0000 | 0.0750 | 0.0337 | model_form_blend |
| predicted_IP | 0.2000 | 0.2000 | 0.2000 | model_form_blend |
| predicted_SO | 0.0000 | 0.7650 | 0.3434 | model_form_blend |
| predicted_WHIP | - | 1.0069 | 1.0069 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 33 |
| Season rows before report date | 33 |
| Report year | 2026 |
| Profile rows used | 33 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 0.2 |
| H | 1 |
| R | 1 |
| ER | 1 |
| BB | 0 |
| SO | 1 |
| HR | 1 |
| BF | 3 |
| Pitches | 11 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 1 |
| Pitching_ER | 0 |
| Pitching_ERA | 0.00 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 1 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.1 |
| Pitching_Pitches | 4 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 3 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 4 |
| allPositionsPlayed | P |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 623465 |
| playerID | 623465 |
| playerName | Evan Phillips |
| pos | P |
| started | False |
| startingPosition | P |
| team | LAD |
| teamID | 14 |
| game_date | 2026-10-04 |
| sl_k_percent | 31.1 |
| sl_bb_percent | 5.7 |
| sl_woba | 0.292 |
| sl_xwoba | 0.321 |
| sl_sweet_spot_percent | 33.3 |
| sl_barrel_batted_rate | 16.7 |
| sl_hard_hit_percent | 39.4 |
| sl_whiff_percent | 26.7 |
| sl_swing_percent | 48.7 |
| sl_avg_best_speed | 80.133585455 |
| sl_avg_hyper_speed | 95.348925152 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 1.000 | 1.000 | 1.000 | Pitching_BB | 0.438 | 0.000 | 0.562 | 1.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.233 | 0.000 | -0.233 | 0.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.411 | 0.000 | 0.589 | 1.000 |
| predicted_IP | 2.000 | 2.000 | 2.000 | Pitching_InningsPitched | 0.664 | 1.000 | 1.336 | 1.000 |
| predicted_SO | 2.000 | 2.000 | 2.000 | Pitching_SO | 1.027 | 1.000 | 0.973 | 1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_rate_projection |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 3 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 0 |
| Better Metrics | 1 |
| Worse Metrics | 2 |
| Biggest Boost | predicted_IP: 0.6667 -> 2.0000 (boost 1.3333, better) |
| Biggest Deboost | - |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_rate_projection | 0 | 0 | 0 | 0 | 0 | - | - | Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty |
| 2 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 3 | team_form_adjustment | 0 | 0 | 0 | 0 | 0 | - | - | Club form: innings, run prevention and strikeout factors |
| 4 | savant_pitcher_quality | 0 | 0 | 0 | 0 | 0 | - | - | Statcast pitch quality: strikeout, walk, home-run and run-prevention factors |
| 5 | opposing_lineup_context | 0 | 0 | 0 | 0 | 0 | - | - | The nine hitters he faces: batter quality, weighted by plate appearances |
| 6 | kpi_run_environment | 0 | 0 | 0 | 0 | 0 | - | - | KPI blend published; the staff line follows the published score, not a KPI rescale |
| 7 | play_by_play_realization | 3 | 3 | 0 | 1 | 2 | predicted_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 |
| 8 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
| Metric | Value | Delta vs Prev Step |
|---|
Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 0.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 0.667 | - |
| predicted_SO | 2.000 | - |
Club form: innings, run prevention and strikeout factors
| Metric | Value | Delta vs Prev Step |
|---|
Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
| Metric | Value | Delta vs Prev Step |
|---|
The nine hitters he faces: batter quality, weighted by plate appearances
| Metric | Value | Delta vs Prev Step |
|---|
KPI blend published; the staff line follows the published score, not a KPI rescale
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| BB | 1.000 | - |
| BF | 8.000 | - |
| ER | 0.000 | - |
| H | 1.000 | - |
| HR | 0.000 | - |
| IP | 2.000 | - |
| Pitches | 38.000 | - |
| R | 0.000 | - |
| SO | 2.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 5.000 | 0.000 | 0.000 | 1.000 | 8.000 | 0.000 | 0.0000 | 0.2000 | 0.0000 | 0.0000 | 0.2000 | 1.6000 | 0.0000 |
| last_10 | 0.35 | 10 | 9.000 | 0.000 | 2.000 | 1.000 | 13.000 | 0.000 | 0.0000 | 0.3333 | 0.0000 | 0.2222 | 0.1111 | 1.4444 | 0.0000 |
| season | 0.20 | 73 | 59.000 | 17.000 | 30.000 | 32.000 | 75.000 | 4.000 | 2.5932 | 1.0508 | 0.2881 | 0.5085 | 0.5424 | 1.2712 | 0.0678 |
| Metric | Value |
|---|---|
| predicted_BB | 0.2390 |
| predicted_ER | 0.1630 |
| predicted_ERA | 1.7113 |
| predicted_H | 0.3540 |
| predicted_HR | 0.0450 |
| predicted_IP | 1.0000 |
| predicted_SO | 1.1300 |
| predicted_WHIP | 0.6927 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.2390 | 0.1260 | model_form_blend |
| predicted_ER | 0.0000 | 0.1630 | 0.0859 | model_form_blend |
| predicted_ERA | - | 1.7113 | 1.7113 | form_only |
| predicted_H | 0.0000 | 0.3540 | 0.1866 | model_form_blend |
| predicted_HR | 0.0000 | 0.0450 | 0.0237 | model_form_blend |
| predicted_IP | 0.2000 | 1.0000 | 1.0000 | model_form_blend |
| predicted_SO | 2.0000 | 1.1300 | 1.5415 | model_form_blend |
| predicted_WHIP | - | 0.6927 | 0.6927 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 73 |
| Season rows before report date | 73 |
| Report year | 2026 |
| Profile rows used | 73 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 2.0 |
| H | 1 |
| R | 0 |
| ER | 0 |
| BB | 1 |
| SO | 2 |
| HR | 0 |
| BF | 8 |
| Pitches | 38 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 3 |
| Pitching_ER | 0 |
| Pitching_ERA | 0.00 |
| Pitching_Flyouts | 1 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.0 |
| Pitching_Pitches | 15 |
| Pitching_R | 0 |
| Pitching_SO | 1 |
| Pitching_Strikes | 10 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 3 |
| allPositionsPlayed | P |
| gameID | 20261003_ATL@LAD |
| game_type | full |
| mlbID | 681911 |
| playerID | 681911 |
| playerName | Alex Vesia |
| pos | P |
| started | False |
| startingPosition | P |
| team | LAD |
| teamID | 14 |
| game_date | 2026-10-03 |
| sl_k_percent | 31.2 |
| sl_bb_percent | 13.5 |
| sl_woba | 0.233 |
| sl_xwoba | 0.254 |
| sl_sweet_spot_percent | 29.0 |
| sl_barrel_batted_rate | 6.1 |
| sl_hard_hit_percent | 33.6 |
| sl_whiff_percent | 33.6 |
| sl_swing_percent | 48.3 |
| sl_avg_best_speed | 77.487421364 |
| sl_avg_hyper_speed | 92.757592977 |
| Field | Value |
|---|---|
| Pitcher | Chris Sale |
| Role | Starter |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.7139 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | -0.0655 |
| Avg Velo | 88.6943 |
| Avg Spin | 2357.2805 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 6 |
| Pre ER | 2 |
| Pre H | 6 |
| Pre BB | 1 |
| Pre SO | 5 |
| Season ERA | 2.2192 |
| Season WHIP | 0.9746 |
| Role Avg IP | 6.0360 |
| Recent Avg IP | 6.8000 |
| Last Start IP | 6.1000 |
{
"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"
}{
"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"
}{
"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."
}{
"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
}
}{
"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"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Dylan Dodd |
| Role | Middle Reliever |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.2871 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.0466 |
| Avg Velo | 90.6954 |
| Avg Spin | 2142.6259 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 1 |
| Pre ER | 0 |
| Pre H | 1 |
| Pre BB | 0 |
| Pre SO | 0 |
| Season ERA | 2.5312 |
| Season WHIP | 0.9000 |
| Role Avg IP | 1.0270 |
| Recent Avg IP | 1 |
| Last Start IP | 0 |
{
"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"
}{
"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"
}{
"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."
}{
"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
}
}{
"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"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Robert Suarez |
| Role | Middle Reliever (High Leverage) |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.2103 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.2800 |
| Avg Velo | 95.5990 |
| Avg Spin | 2227.5546 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 1 |
| Pre ER | 0 |
| Pre H | 1 |
| Pre BB | 0 |
| Pre SO | 0 |
| Season ERA | 1.0093 |
| Season WHIP | 0.8692 |
| Role Avg IP | 1.0190 |
| Recent Avg IP | 1 |
| Last Start IP | 0 |
{
"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"
}{
"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"
}{
"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."
}{
"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
}
}{
"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"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Dylan Lee |
| Role | Middle Reliever (High Leverage) |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.8871 |
| ESPN Rank | - |
| Movement Available | False |
| Primary Pitch | - |
| Movement Score | - |
| Avg Velo | - |
| Avg Spin | - |
| HB Inches | - |
| IVB Inches | - |
| Release Extension | - |
| Pre IP | 2 |
| Pre ER | 0 |
| Pre H | 1 |
| Pre BB | 0 |
| Pre SO | 2 |
| Season ERA | 2.9856 |
| Season WHIP | 0.9375 |
| Role Avg IP | 0.9500 |
| Recent Avg IP | 0.8670 |
| Last Start IP | 0 |
{
"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"
}{
"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"
}{
"available": false,
"pitcher_id": "669276",
"reason": "pitcher_movement_profile_has_no_pitches"
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.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
}
}{
"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"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.148 | 0.000 | 0.000 | Hitting_2B | 0.141 | 0.000 | -0.141 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 4.570 | 5.000 | 5.000 | Hitting_AB | 3.978 | 2.000 | 1.022 | 3.000 |
| predicted_AVG | 0.232 | 0.000 | 0.000 | Hitting_AVG | 0.283 | 0.000 | -0.283 | 0.000 |
| predicted_BB | 0.408 | 0.000 | 0.000 | Hitting_BB | 0.422 | 3.000 | -0.422 | -3.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.005 | 0.000 | -0.005 | 0.000 |
| predicted_H | 1.060 | 0.000 | 0.000 | Hitting_H | 1.126 | 0.000 | -1.126 | 0.000 |
| predicted_HR | 0.140 | 0.000 | 0.000 | Hitting_HR | 0.181 | 0.000 | -0.181 | 0.000 |
| predicted_OBP | 0.334 | 0.000 | 0.000 | Hitting_OBP | 0.361 | 0.600 | -0.361 | -0.600 |
| predicted_R | 0.592 | 0.000 | 0.000 | Hitting_R | 0.622 | 0.000 | -0.622 | 0.000 |
| predicted_RBI | 0.530 | 0.000 | 0.000 | Hitting_RBI | 0.606 | 0.000 | -0.606 | 0.000 |
| predicted_SLG | 0.386 | 0.000 | 0.000 | Hitting_SLG | 0.455 | 0.000 | -0.455 | 0.000 |
| predicted_SO | 0.937 | 0.000 | 0.000 | Hitting_SO | 0.952 | 0.000 | -0.952 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 9 |
| Better Metrics | 3 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_AB: 4.5700 -> 5.0000 (boost 0.4300, better) |
| Biggest Deboost | predicted_H: 1.0600 -> 0.0000 (deboost -1.0600, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 1 | 2 | 1 | 2 | predicted_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. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 1 | 6 | 0 | 7 | predicted_SO: 0.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 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4803 -> 0.0000 (deboost -0.4803, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 4 | 4 | 0 | 4 | 0 | predicted_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 |
| 8 | lineup_integer_allocation | 5 | 3 | 2 | 3 | 2 | predicted_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 |
| 9 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | kpi_run_environment | 3 | 3 | 0 | 3 | 0 | predicted_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 |
| 11 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated |
| 12 | play_by_play_realization | 5 | 1 | 4 | 2 | 3 | predicted_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 |
| 13 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 14 | current_json_final | 3 | 0 | 3 | 0 | 3 | - | predicted_OBP: 0.3090 -> 0.3000 (deboost -0.0090, worse) | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.148 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 4.570 | - |
| predicted_AVG | 0.232 | - |
| predicted_BB | 0.408 | - |
| predicted_H | 1.060 | - |
| predicted_HR | 0.140 | - |
| predicted_OBP | 0.334 | - |
| predicted_R | 0.592 | - |
| predicted_RBI | 0.530 | - |
| predicted_SLG | 0.386 | - |
| predicted_SO | 0.937 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.157 | 0.009 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 4.287 | -0.283 |
| predicted_AVG | 0.240 | 0.008 |
| predicted_BB | 0.421 | 0.013 |
| predicted_H | 1.025 | -0.035 |
| predicted_HBP | 0.056 | - |
| predicted_HR | 0.133 | -0.007 |
| predicted_OBP | 0.334 | -0.000 |
| predicted_R | 0.507 | -0.085 |
| predicted_RBI | 0.490 | -0.040 |
| predicted_SLG | 0.387 | 0.001 |
| predicted_SO | 0.904 | -0.033 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.157 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 4.287 | 0.000 |
| predicted_AVG | 0.231 | -0.008 |
| predicted_BB | 0.419 | -0.002 |
| predicted_H | 0.992 | -0.033 |
| predicted_HBP | 0.056 | 0.000 |
| predicted_HR | 0.130 | -0.004 |
| predicted_OBP | 0.300 | -0.034 |
| predicted_R | 0.480 | -0.027 |
| predicted_RBI | 0.464 | -0.026 |
| predicted_SLG | 0.359 | -0.028 |
| predicted_SO | 0.909 | 0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.57), rates preserved: AVG=0.192 HR/AB=0.028
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.168 | 0.168 |
| 3B | 0.008 | 0.008 |
| BB | 0.334 | 0.334 |
| H | 0.955 | -0.045 |
| HR | 0.180 | 0.180 |
| RBI | 0.547 | 0.547 |
| SO | 0.986 | -0.014 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.168 |
| 3B | 0.000 | -0.008 |
| AB | 4.000 | 0.000 |
| AVG | 0.235 | - |
| BB | 1.000 | 0.666 |
| H | 1.000 | 0.045 |
| HR | 0.000 | -0.180 |
| OBP | 0.299 | - |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.453 |
| SLG | 0.414 | - |
| SO | 1.000 | 0.014 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.157 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 4.000 | -0.287 |
| predicted_AVG | 0.235 | 0.004 |
| predicted_BB | 1.000 | 0.581 |
| predicted_H | 1.000 | 0.008 |
| predicted_HR | 0.000 | -0.130 |
| predicted_OBP | 0.299 | -0.001 |
| predicted_R | 0.000 | -0.480 |
| predicted_RBI | 1.000 | 0.536 |
| predicted_SLG | 0.414 | 0.055 |
| predicted_SO | 1.000 | 0.091 |
KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.244 | 0.009 |
| BB | 1.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.309 | 0.010 |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SLG | 0.429 | 0.015 |
| SO | 1.000 | 0.000 |
Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | -1.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -1.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 19.000 | 3.000 | 1.000 | 0.000 | 0.000 | 1.000 | 0.000 | 3.000 | 4.000 | 0.1579 | 0.2727 | 0.2105 | 0.1579 | 0.0000 | 0.0526 | 0.1579 | 0.2105 |
| last_10 | 0.20 | 10 | - | 40.000 | 10.000 | 2.000 | 0.000 | 1.000 | 3.000 | 2.000 | 4.000 | 7.000 | 0.2500 | 0.3333 | 0.3750 | 0.2500 | 0.0250 | 0.0750 | 0.1000 | 0.1750 |
| season | 0.60 | 142 | - | 560.000 | 157.000 | 21.000 | 0.000 | 25.000 | 80.000 | 84.000 | 58.000 | 133.000 | 0.2804 | 0.3561 | 0.4518 | 0.2804 | 0.0446 | 0.1429 | 0.1036 | 0.2375 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1690 |
| predicted_3B | 0.0010 |
| predicted_AB | 3.9210 |
| predicted_AVG | 0.2497 |
| predicted_BB | 0.4380 |
| predicted_H | 0.9790 |
| predicted_HBP | 0.0560 |
| predicted_HR | 0.1250 |
| predicted_OBP | 0.3335 |
| predicted_R | 0.3980 |
| predicted_RBI | 0.4390 |
| predicted_SLG | 0.3890 |
| predicted_SO | 0.8620 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1480 | 0.1690 | 0.1572 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 4.5700 | 3.9210 | 4.2866 | model_form_blend |
| predicted_AVG | 0.2320 | 0.2497 | 0.2397 | model_form_blend |
| predicted_BB | 0.4080 | 0.4380 | 0.4211 | model_form_blend |
| predicted_H | 1.0600 | 0.9790 | 1.0246 | model_form_blend |
| predicted_HBP | - | 0.0560 | 0.0560 | form_only |
| predicted_HR | 0.1400 | 0.1250 | 0.1334 | model_form_blend |
| predicted_OBP | 0.3340 | 0.3335 | 0.3338 | model_form_blend |
| predicted_R | 0.5920 | 0.3980 | 0.5073 | model_form_blend |
| predicted_RBI | 0.5300 | 0.4390 | 0.4903 | model_form_blend |
| predicted_SLG | 0.3860 | 0.3890 | 0.3873 | model_form_blend |
| predicted_SO | 0.9370 | 0.8620 | 0.9042 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 587 |
| Season rows before report date | 587 |
| Report year | 2026 |
| Profile rows used | 142 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 2 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 3 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 1 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 1 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | C |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 686948 |
| playerID | 686948 |
| playerName | Drake Baldwin |
| pos | C |
| started | True |
| startingPosition | C |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-04 |
| sl_k_percent | 21.5 |
| sl_bb_percent | 8.9 |
| sl_woba | 0.358 |
| sl_xwoba | 0.37 |
| sl_xba | 0.279 |
| sl_xslg | 0.505 |
| sl_sweet_spot_percent | 37.5 |
| sl_barrel_batted_rate | 12.9 |
| sl_hard_hit_percent | 50.6 |
| sl_exit_velocity_avg | 91.5 |
| sl_launch_angle_avg | 11.0 |
| sl_whiff_percent | 24.4 |
| sl_swing_percent | 51.2 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.162 | 0.000 | 0.000 | Hitting_2B | 0.179 | 0.000 | -0.179 | 0.000 |
| predicted_3B | 0.009 | 0.000 | 0.000 | Hitting_3B | 0.009 | 0.000 | -0.009 | 0.000 |
| predicted_AB | 3.811 | 5.000 | 5.000 | Hitting_AB | 3.874 | 5.000 | 1.126 | 0.000 |
| predicted_AVG | 0.253 | 0.000 | 0.000 | Hitting_AVG | 0.257 | 0.200 | -0.257 | -0.200 |
| predicted_BB | 0.495 | 0.000 | 0.000 | Hitting_BB | 0.529 | 0.000 | -0.529 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.076 | 0.000 | -0.076 | 0.000 |
| predicted_H | 0.964 | 0.000 | 0.000 | Hitting_H | 0.996 | 1.000 | -0.996 | -1.000 |
| predicted_HR | 0.180 | 0.000 | 0.000 | Hitting_HR | 0.186 | 0.000 | -0.186 | 0.000 |
| predicted_OBP | 0.339 | 0.000 | 0.000 | Hitting_OBP | 0.350 | 0.200 | -0.350 | -0.200 |
| predicted_R | 0.586 | 0.000 | 0.000 | Hitting_R | 0.583 | 1.000 | -0.583 | -1.000 |
| predicted_RBI | 0.495 | 0.000 | 0.000 | Hitting_RBI | 0.509 | 0.000 | -0.509 | 0.000 |
| predicted_SLG | 0.442 | 0.000 | 0.000 | Hitting_SLG | 0.452 | 0.200 | -0.452 | -0.200 |
| predicted_SO | 0.946 | 1.000 | 1.000 | Hitting_SO | 0.978 | 1.000 | 0.022 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 12 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 10 |
| Better Metrics | 1 |
| Worse Metrics | 11 |
| Biggest Boost | predicted_AB: 3.8110 -> 5.0000 (boost 1.1890, better) |
| Biggest Deboost | predicted_H: 0.9640 -> 0.0000 (deboost -0.9640, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 6 | 0 | 6 | 1 | 5 | - | 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. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 3 | 5 | 2 | 6 | predicted_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 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5630 -> 1.0000 (boost 0.4370, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 5 | 4 | 1 | 4 | 1 | predicted_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 |
| 8 | lineup_integer_allocation | 8 | 4 | 4 | 4 | 4 | predicted_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 |
| 9 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | kpi_run_environment | 3 | 3 | 0 | 3 | 0 | predicted_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 |
| 11 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Market blend not applied: no props for this hitter |
| 12 | play_by_play_realization | 5 | 1 | 4 | 1 | 4 | predicted_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 |
| 13 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 14 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 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.180 | - |
| predicted_OBP | 0.339 | - |
| predicted_R | 0.586 | - |
| predicted_RBI | 0.495 | - |
| predicted_SLG | 0.442 | - |
| predicted_SO | 0.946 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.135 | -0.027 |
| predicted_3B | 0.008 | -0.001 |
| predicted_AB | 3.776 | -0.035 |
| predicted_AVG | 0.239 | -0.014 |
| predicted_BB | 0.490 | -0.005 |
| predicted_H | 0.902 | -0.062 |
| predicted_HBP | 0.090 | - |
| predicted_HR | 0.148 | -0.032 |
| predicted_OBP | 0.332 | -0.007 |
| predicted_R | 0.595 | 0.009 |
| predicted_RBI | 0.411 | -0.084 |
| predicted_SLG | 0.396 | -0.046 |
| predicted_SO | 0.885 | -0.061 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.135 | 0.000 |
| predicted_3B | 0.008 | 0.000 |
| predicted_AB | 3.776 | 0.000 |
| predicted_AVG | 0.231 | -0.008 |
| predicted_BB | 0.488 | -0.003 |
| predicted_H | 0.873 | -0.029 |
| predicted_HBP | 0.090 | 0.000 |
| predicted_HR | 0.144 | -0.004 |
| predicted_OBP | 0.319 | -0.013 |
| predicted_R | 0.563 | -0.032 |
| predicted_RBI | 0.390 | -0.022 |
| predicted_SLG | 0.386 | -0.011 |
| predicted_SO | 0.890 | 0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.81), rates preserved: AVG=0.203 HR/AB=0.038
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.159 | 0.159 |
| 3B | 0.011 | 0.011 |
| BB | 0.351 | 0.351 |
| H | 0.854 | -0.146 |
| HR | 0.171 | 0.171 |
| RBI | 0.487 | 0.487 |
| SO | 0.990 | -0.010 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.159 |
| 3B | 0.000 | -0.011 |
| AB | 4.000 | 0.000 |
| AVG | 0.220 | - |
| BB | 1.000 | 0.649 |
| H | 1.000 | 0.146 |
| HR | 0.000 | -0.171 |
| OBP | 0.290 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.513 |
| SLG | 0.398 | - |
| SO | 1.000 | 0.010 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.135 |
| predicted_3B | 0.000 | -0.008 |
| predicted_AB | 4.000 | 0.224 |
| predicted_AVG | 0.220 | -0.011 |
| predicted_BB | 1.000 | 0.512 |
| predicted_H | 1.000 | 0.127 |
| predicted_HR | 0.000 | -0.144 |
| predicted_OBP | 0.290 | -0.029 |
| predicted_R | 1.000 | 0.437 |
| predicted_RBI | 1.000 | 0.611 |
| predicted_SLG | 0.398 | 0.012 |
| predicted_SO | 1.000 | 0.110 |
KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.228 | 0.008 |
| BB | 1.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.299 | 0.009 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SLG | 0.412 | 0.014 |
| SO | 1.000 | 0.000 |
Market blend not applied: no props for this hitter
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | -1.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | -1.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 18.000 | 3.000 | 0.000 | 0.000 | 0.000 | 0.000 | 4.000 | 3.000 | 3.000 | 0.1667 | 0.3182 | 0.1667 | 0.1667 | 0.0000 | 0.0000 | 0.1667 | 0.1667 |
| last_10 | 0.20 | 10 | - | 36.000 | 6.000 | 0.000 | 0.000 | 0.000 | 0.000 | 5.000 | 4.000 | 6.000 | 0.1667 | 0.2683 | 0.1667 | 0.1667 | 0.0000 | 0.0000 | 0.1111 | 0.1667 |
| season | 0.60 | 111 | - | 423.000 | 107.000 | 18.000 | 1.000 | 20.000 | 55.000 | 65.000 | 55.000 | 105.000 | 0.2530 | 0.3450 | 0.4421 | 0.2530 | 0.0473 | 0.1300 | 0.1300 | 0.2482 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1000 |
| predicted_3B | 0.0060 |
| predicted_AB | 3.7310 |
| predicted_AVG | 0.2202 |
| predicted_BB | 0.4840 |
| predicted_H | 0.8210 |
| predicted_HBP | 0.0900 |
| predicted_HR | 0.1070 |
| predicted_OBP | 0.3232 |
| predicted_R | 0.6060 |
| predicted_RBI | 0.3020 |
| predicted_SLG | 0.3363 |
| predicted_SO | 0.8060 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1620 | 0.1000 | 0.1352 | model_form_blend |
| predicted_3B | 0.0090 | 0.0060 | 0.0077 | model_form_blend |
| predicted_AB | 3.8110 | 3.7310 | 3.7764 | model_form_blend |
| predicted_AVG | 0.2530 | 0.2202 | 0.2388 | model_form_blend |
| predicted_BB | 0.4950 | 0.4840 | 0.4902 | model_form_blend |
| predicted_H | 0.9640 | 0.8210 | 0.9021 | model_form_blend |
| predicted_HBP | - | 0.0900 | 0.0900 | form_only |
| predicted_HR | 0.1800 | 0.1070 | 0.1484 | model_form_blend |
| predicted_OBP | 0.3390 | 0.3232 | 0.3322 | model_form_blend |
| predicted_R | 0.5860 | 0.6060 | 0.5947 | model_form_blend |
| predicted_RBI | 0.4950 | 0.3020 | 0.4114 | model_form_blend |
| predicted_SLG | 0.4420 | 0.3363 | 0.3962 | model_form_blend |
| predicted_SO | 0.9460 | 0.8060 | 0.8854 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 446 |
| Season rows before report date | 446 |
| Report year | 2026 |
| Profile rows used | 111 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 1 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 5 |
| Hitting_AVG | 0.2 |
| Hitting_BB | 0 |
| Hitting_GIDP | 1 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 2 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | RF |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 660670 |
| playerID | 660670 |
| playerName | Ronald Acuña Jr. |
| pos | RF |
| started | True |
| startingPosition | RF |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-04 |
| sl_k_percent | 22.0 |
| sl_bb_percent | 11.3 |
| sl_woba | 0.348 |
| sl_xwoba | 0.366 |
| sl_xba | 0.261 |
| sl_xslg | 0.495 |
| sl_sweet_spot_percent | 34.7 |
| sl_barrel_batted_rate | 13.0 |
| sl_hard_hit_percent | 43.5 |
| sl_exit_velocity_avg | 89.6 |
| sl_launch_angle_avg | 15.7 |
| sl_whiff_percent | 29.0 |
| sl_swing_percent | 49.4 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.205 | 0.000 | 0.000 | Hitting_2B | 0.227 | 0.000 | -0.227 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 4.160 | 5.000 | 5.000 | Hitting_AB | 3.897 | 4.000 | 1.103 | 1.000 |
| predicted_AVG | 0.219 | 0.200 | 0.200 | Hitting_AVG | 0.253 | 0.250 | -0.053 | -0.050 |
| predicted_BB | 0.392 | 0.000 | 0.000 | Hitting_BB | 0.430 | 1.000 | -0.430 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.910 | 1.000 | 1.000 | Hitting_H | 0.987 | 1.000 | 0.013 | 0.000 |
| predicted_HR | 0.230 | 1.000 | 1.000 | Hitting_HR | 0.264 | 0.000 | 0.736 | 1.000 |
| predicted_OBP | 0.279 | 0.200 | 0.200 | Hitting_OBP | 0.328 | 0.400 | -0.128 | -0.200 |
| predicted_R | 0.608 | 1.000 | 1.000 | Hitting_R | 0.657 | 1.000 | 0.343 | 0.000 |
| predicted_RBI | 0.640 | 2.000 | 2.000 | Hitting_RBI | 0.593 | 0.000 | 1.407 | 2.000 |
| predicted_SLG | 0.426 | 0.800 | 0.800 | Hitting_SLG | 0.515 | 0.250 | 0.285 | 0.550 |
| predicted_SO | 1.060 | 1.000 | 1.000 | Hitting_SO | 1.093 | 2.000 | -0.093 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 10 |
| Boosted Metrics | 7 |
| Deboosted Metrics | 3 |
| Better Metrics | 8 |
| Worse Metrics | 2 |
| Biggest Boost | predicted_RBI: 0.6400 -> 2.0000 (boost 1.3600, better) |
| Biggest Deboost | predicted_BB: 0.3920 -> 0.0000 (deboost -0.3920, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 1 | 0 | 1 | 0 | 1 | - | 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. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 2 | 4 | 3 | 3 | predicted_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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.000) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5557 -> 1.0000 (boost 0.4443, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 4 | 2 | 3 | 3 | predicted_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 |
| 9 | lineup_integer_allocation | 7 | 4 | 3 | 5 | 2 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 3 | 0 | 3 | 0 | predicted_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 |
| 12 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated |
| 13 | play_by_play_realization | 2 | 2 | 0 | 2 | 0 | predicted_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 |
| 14 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 15 | current_json_final | 1 | 1 | 0 | 1 | 0 | predicted_OBP: 0.2860 -> 0.2920 (boost 0.0060, better) | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.205 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 4.160 | - |
| predicted_AVG | 0.219 | - |
| predicted_BB | 0.392 | - |
| predicted_H | 0.910 | - |
| predicted_HR | 0.230 | - |
| predicted_OBP | 0.279 | - |
| predicted_R | 0.608 | - |
| predicted_RBI | 0.640 | - |
| predicted_SLG | 0.426 | - |
| predicted_SO | 1.060 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.178 | -0.027 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.988 | -0.172 |
| predicted_AVG | 0.218 | -0.001 |
| predicted_BB | 0.382 | -0.010 |
| predicted_H | 0.868 | -0.042 |
| predicted_HBP | 0.012 | - |
| predicted_HR | 0.227 | -0.003 |
| predicted_OBP | 0.280 | 0.001 |
| predicted_R | 0.587 | -0.021 |
| predicted_RBI | 0.622 | -0.018 |
| predicted_SLG | 0.429 | 0.003 |
| predicted_SO | 1.071 | 0.011 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.178 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.988 | 0.000 |
| predicted_AVG | 0.211 | -0.007 |
| predicted_BB | 0.380 | -0.002 |
| predicted_H | 0.840 | -0.028 |
| predicted_HBP | 0.012 | 0.000 |
| predicted_HR | 0.221 | -0.007 |
| predicted_OBP | 0.279 | -0.000 |
| predicted_R | 0.556 | -0.031 |
| predicted_RBI | 0.589 | -0.033 |
| predicted_SLG | 0.421 | -0.007 |
| predicted_SO | 1.077 | 0.006 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.16), rates preserved: AVG=0.179 HR/AB=0.053
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.000)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.174 | 0.174 |
| 3B | 0.007 | 0.007 |
| BB | 0.312 | 0.312 |
| H | 0.807 | -0.193 |
| HR | 0.220 | 0.220 |
| RBI | 0.508 | -0.492 |
| SO | 1.080 | 0.080 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.174 |
| 3B | 0.000 | -0.007 |
| AB | 4.000 | 0.000 |
| AVG | 0.211 | - |
| BB | 0.000 | -0.312 |
| H | 1.000 | 0.193 |
| HR | 1.000 | 0.780 |
| OBP | 0.277 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.492 |
| SLG | 0.433 | - |
| SO | 1.000 | -0.080 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.178 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 4.000 | 0.012 |
| predicted_AVG | 0.211 | 0.000 |
| predicted_BB | 0.000 | -0.380 |
| predicted_H | 1.000 | 0.160 |
| predicted_HR | 1.000 | 0.779 |
| predicted_OBP | 0.277 | -0.002 |
| predicted_R | 1.000 | 0.444 |
| predicted_RBI | 1.000 | 0.411 |
| predicted_SLG | 0.433 | 0.012 |
| predicted_SO | 1.000 | -0.077 |
KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.219 | 0.008 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 1.000 | 0.000 |
| OBP | 0.286 | 0.009 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SLG | 0.449 | 0.016 |
| SO | 1.000 | 0.000 |
Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 1.000 | 0.000 |
| PA | 5.000 | - |
| R | 1.000 | 0.000 |
| RBI | 2.000 | 1.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 1.000 | 0.000 |
| PA | 5.000 | 0.000 |
| R | 1.000 | 0.000 |
| RBI | 2.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 19.000 | 3.000 | 0.000 | 0.000 | 1.000 | 3.000 | 3.000 | 2.000 | 7.000 | 0.1579 | 0.2273 | 0.3158 | 0.1579 | 0.0526 | 0.1579 | 0.1053 | 0.3684 |
| last_10 | 0.20 | 10 | - | 35.000 | 6.000 | 1.000 | 0.000 | 2.000 | 7.000 | 4.000 | 3.000 | 9.000 | 0.1714 | 0.2195 | 0.3714 | 0.1714 | 0.0571 | 0.2000 | 0.0857 | 0.2571 |
| season | 0.60 | 166 | - | 638.000 | 158.000 | 34.000 | 0.000 | 41.000 | 94.000 | 101.000 | 65.000 | 176.000 | 0.2476 | 0.3170 | 0.4937 | 0.2477 | 0.0643 | 0.1473 | 0.1019 | 0.2759 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1430 |
| predicted_3B | 0.0010 |
| predicted_AB | 3.7670 |
| predicted_AVG | 0.2158 |
| predicted_BB | 0.3700 |
| predicted_H | 0.8130 |
| predicted_HBP | 0.0120 |
| predicted_HR | 0.2240 |
| predicted_OBP | 0.2806 |
| predicted_R | 0.5600 |
| predicted_RBI | 0.5980 |
| predicted_SLG | 0.4326 |
| predicted_SO | 1.0850 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2050 | 0.1430 | 0.1778 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 4.1600 | 3.7670 | 3.9878 | model_form_blend |
| predicted_AVG | 0.2190 | 0.2158 | 0.2176 | model_form_blend |
| predicted_BB | 0.3920 | 0.3700 | 0.3824 | model_form_blend |
| predicted_H | 0.9100 | 0.8130 | 0.8675 | model_form_blend |
| predicted_HBP | - | 0.0120 | 0.0120 | form_only |
| predicted_HR | 0.2300 | 0.2240 | 0.2274 | model_form_blend |
| predicted_OBP | 0.2790 | 0.2806 | 0.2797 | model_form_blend |
| predicted_R | 0.6080 | 0.5600 | 0.5870 | model_form_blend |
| predicted_RBI | 0.6400 | 0.5980 | 0.6216 | model_form_blend |
| predicted_SLG | 0.4260 | 0.4326 | 0.4289 | model_form_blend |
| predicted_SO | 1.0600 | 1.0850 | 1.0710 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 670 |
| Season rows before report date | 670 |
| Report year | 2026 |
| Profile rows used | 166 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 1 |
| R | 1 |
| RBI | 2 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.25 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 2 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 3 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 1B |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 621566 |
| playerID | 621566 |
| playerName | Matt Olson |
| pos | 1B |
| started | True |
| startingPosition | 1B |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-04 |
| sl_k_percent | 24.5 |
| sl_bb_percent | 9.2 |
| sl_woba | 0.351 |
| sl_xwoba | 0.351 |
| sl_xba | 0.247 |
| sl_xslg | 0.503 |
| sl_sweet_spot_percent | 32.0 |
| sl_barrel_batted_rate | 14.2 |
| sl_hard_hit_percent | 52.0 |
| sl_exit_velocity_avg | 92.5 |
| sl_launch_angle_avg | 18.1 |
| sl_whiff_percent | 25.4 |
| sl_swing_percent | 46.9 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.163 | 0.000 | 0.000 | Hitting_2B | 0.191 | 0.000 | -0.191 | 0.000 |
| predicted_3B | 0.012 | 0.000 | 0.000 | Hitting_3B | 0.003 | 0.000 | -0.003 | 0.000 |
| predicted_AB | 3.990 | 4.000 | 4.000 | Hitting_AB | 3.851 | 4.000 | 0.149 | 0.000 |
| predicted_AVG | 0.199 | 0.250 | 0.250 | Hitting_AVG | 0.244 | 0.000 | 0.006 | 0.250 |
| predicted_BB | 0.307 | 0.000 | 0.000 | Hitting_BB | 0.319 | 1.000 | -0.319 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.027 | 0.000 | -0.027 | 0.000 |
| predicted_H | 0.800 | 1.000 | 1.000 | Hitting_H | 0.939 | 0.000 | 0.061 | 1.000 |
| predicted_HR | 0.220 | 0.000 | 0.000 | Hitting_HR | 0.137 | 0.000 | -0.137 | 0.000 |
| predicted_OBP | 0.324 | 0.250 | 0.250 | Hitting_OBP | 0.303 | 0.200 | -0.053 | 0.050 |
| predicted_R | 0.536 | 0.000 | 0.000 | Hitting_R | 0.554 | 0.000 | -0.554 | 0.000 |
| predicted_RBI | 0.680 | 0.000 | 0.000 | Hitting_RBI | 0.461 | 0.000 | -0.461 | 0.000 |
| predicted_SB | - | 0.000 | 0.000 | BaseRunning_SB | 0.021 | 0.000 | -0.021 | 0.000 |
| predicted_SLG | 0.432 | 0.250 | 0.250 | Hitting_SLG | 0.401 | 0.000 | -0.151 | 0.250 |
| predicted_SO | 0.645 | 1.000 | 1.000 | Hitting_SO | 0.665 | 1.000 | 0.335 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 8 |
| Better Metrics | 2 |
| Worse Metrics | 9 |
| Biggest Boost | predicted_SO: 0.6450 -> 1.0000 (boost 0.3550, worse) |
| Biggest Deboost | predicted_RBI: 0.6800 -> 0.0000 (deboost -0.6800, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 3 | 1 | 3 | 1 | predicted_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. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 4 | 4 | 3 | 5 | predicted_RBI: 0.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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.200) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5198 -> 1.0000 (boost 0.4802, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 3 | 3 | 4 | 2 | predicted_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 |
| 9 | lineup_integer_allocation | 9 | 3 | 6 | 2 | 7 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 3 | 0 | 3 | 0 | predicted_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 |
| 12 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated |
| 13 | play_by_play_realization | 1 | 0 | 1 | 0 | 1 | - | 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 |
| 14 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 15 | current_json_final | 1 | 0 | 1 | 0 | 1 | - | predicted_SLG: 0.3940 -> 0.3800 (deboost -0.0140, worse) | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.163 | - |
| predicted_3B | 0.012 | - |
| predicted_AB | 3.990 | - |
| predicted_AVG | 0.199 | - |
| predicted_BB | 0.307 | - |
| predicted_H | 0.800 | - |
| predicted_HR | 0.220 | - |
| predicted_OBP | 0.324 | - |
| predicted_R | 0.536 | - |
| predicted_RBI | 0.680 | - |
| predicted_SLG | 0.432 | - |
| predicted_SO | 0.645 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.134 | -0.029 |
| predicted_3B | 0.038 | 0.026 |
| predicted_AB | 3.804 | -0.186 |
| predicted_AVG | 0.213 | 0.014 |
| predicted_BB | 0.389 | 0.082 |
| predicted_H | 0.811 | 0.011 |
| predicted_HBP | 0.115 | - |
| predicted_HR | 0.216 | -0.004 |
| predicted_OBP | 0.329 | 0.005 |
| predicted_R | 0.549 | 0.013 |
| predicted_RBI | 0.651 | -0.029 |
| predicted_SLG | 0.451 | 0.019 |
| predicted_SO | 0.650 | 0.005 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.134 | 0.000 |
| predicted_3B | 0.038 | 0.000 |
| predicted_AB | 3.804 | 0.000 |
| predicted_AVG | 0.206 | -0.007 |
| predicted_BB | 0.387 | -0.002 |
| predicted_H | 0.785 | -0.026 |
| predicted_HBP | 0.115 | 0.000 |
| predicted_HR | 0.210 | -0.006 |
| predicted_OBP | 0.280 | -0.049 |
| predicted_R | 0.520 | -0.029 |
| predicted_RBI | 0.616 | -0.035 |
| predicted_SLG | 0.427 | -0.024 |
| predicted_SO | 0.653 | 0.003 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.99), rates preserved: AVG=0.174 HR/AB=0.053
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.200)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.154 | 0.154 |
| 3B | 0.011 | 0.011 |
| BB | 0.248 | 0.248 |
| H | 0.793 | -0.207 |
| HR | 0.141 | 0.141 |
| RBI | 0.433 | -0.567 |
| SO | 0.697 | -0.303 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.154 |
| 3B | 0.000 | -0.011 |
| AB | 4.000 | 0.000 |
| AVG | 0.217 | - |
| BB | 0.000 | -0.248 |
| H | 1.000 | 0.207 |
| HR | 0.000 | -0.141 |
| OBP | 0.272 | - |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.433 |
| SLG | 0.380 | - |
| SO | 1.000 | 0.303 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.134 |
| predicted_3B | 0.000 | -0.038 |
| predicted_AB | 4.000 | 0.196 |
| predicted_AVG | 0.217 | 0.011 |
| predicted_BB | 0.000 | -0.387 |
| predicted_H | 1.000 | 0.215 |
| predicted_HR | 0.000 | -0.210 |
| predicted_OBP | 0.272 | -0.008 |
| predicted_R | 1.000 | 0.480 |
| predicted_RBI | 0.000 | -0.616 |
| predicted_SLG | 0.380 | -0.047 |
| predicted_SO | 1.000 | 0.347 |
KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.224 | 0.007 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.281 | 0.009 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.394 | 0.014 |
| SO | 1.000 | 0.000 |
Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 16.000 | 4.000 | 0.000 | 1.000 | 2.000 | 5.000 | 4.000 | 5.000 | 2.000 | 0.2500 | 0.4545 | 0.7500 | 0.2500 | 0.1250 | 0.3125 | 0.3125 | 0.1250 |
| last_10 | 0.20 | 10 | - | 33.000 | 6.000 | 0.000 | 1.000 | 2.000 | 6.000 | 4.000 | 5.000 | 9.000 | 0.1818 | 0.3250 | 0.4242 | 0.1818 | 0.0606 | 0.1818 | 0.1515 | 0.2727 |
| season | 0.60 | 166 | - | 624.000 | 150.000 | 27.000 | 2.000 | 24.000 | 78.000 | 89.000 | 51.000 | 107.000 | 0.2404 | 0.3009 | 0.4054 | 0.2404 | 0.0385 | 0.1250 | 0.0817 | 0.1715 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0960 |
| predicted_3B | 0.0710 |
| predicted_AB | 3.5660 |
| predicted_AVG | 0.2313 |
| predicted_BB | 0.4950 |
| predicted_H | 0.8250 |
| predicted_HBP | 0.1150 |
| predicted_HR | 0.2110 |
| predicted_OBP | 0.3352 |
| predicted_R | 0.5660 |
| predicted_RBI | 0.6130 |
| predicted_SLG | 0.4752 |
| predicted_SO | 0.6560 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1630 | 0.0960 | 0.1337 | model_form_blend |
| predicted_3B | 0.0120 | 0.0710 | 0.0378 | model_form_blend |
| predicted_AB | 3.9900 | 3.5660 | 3.8043 | model_form_blend |
| predicted_AVG | 0.1990 | 0.2313 | 0.2131 | model_form_blend |
| predicted_BB | 0.3070 | 0.4950 | 0.3893 | model_form_blend |
| predicted_H | 0.8000 | 0.8250 | 0.8109 | model_form_blend |
| predicted_HBP | - | 0.1150 | 0.1150 | form_only |
| predicted_HR | 0.2200 | 0.2110 | 0.2161 | model_form_blend |
| predicted_OBP | 0.3240 | 0.3352 | 0.3289 | model_form_blend |
| predicted_R | 0.5360 | 0.5660 | 0.5491 | model_form_blend |
| predicted_RBI | 0.6800 | 0.6130 | 0.6507 | model_form_blend |
| predicted_SLG | 0.4320 | 0.4752 | 0.4509 | model_form_blend |
| predicted_SO | 0.6450 | 0.6560 | 0.6498 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 659 |
| Season rows before report date | 659 |
| Report year | 2026 |
| Profile rows used | 166 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 4 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 2B |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 645277 |
| playerID | 645277 |
| playerName | Ozzie Albies |
| pos | 2B |
| started | True |
| startingPosition | 2B |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-04 |
| sl_k_percent | 15.4 |
| sl_bb_percent | 6.7 |
| sl_woba | 0.298 |
| sl_xwoba | 0.273 |
| sl_xba | 0.221 |
| sl_xslg | 0.337 |
| sl_sweet_spot_percent | 32.3 |
| sl_barrel_batted_rate | 3.8 |
| sl_hard_hit_percent | 27.7 |
| sl_exit_velocity_avg | 87.1 |
| sl_launch_angle_avg | 17.8 |
| sl_whiff_percent | 21.2 |
| sl_swing_percent | 56.1 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.233 | 0.000 | 0.000 | Hitting_2B | 0.237 | 1.000 | -0.237 | -1.000 |
| predicted_3B | 0.013 | 0.000 | 0.000 | Hitting_3B | 0.010 | 1.000 | -0.010 | -1.000 |
| predicted_AB | 5.440 | 4.000 | 4.000 | Hitting_AB | 4.027 | 5.000 | -0.027 | -1.000 |
| predicted_AVG | 0.308 | 0.250 | 0.250 | Hitting_AVG | 0.298 | 0.600 | -0.048 | -0.350 |
| predicted_BB | 0.132 | 0.000 | 0.000 | Hitting_BB | 0.143 | 0.000 | -0.143 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.022 | 0.000 | -0.022 | 0.000 |
| predicted_H | 1.680 | 1.000 | 1.000 | Hitting_H | 1.198 | 3.000 | -0.198 | -2.000 |
| predicted_HR | 0.190 | 0.000 | 0.000 | Hitting_HR | 0.178 | 0.000 | -0.178 | 0.000 |
| predicted_OBP | 0.344 | 0.250 | 0.250 | Hitting_OBP | 0.323 | 0.600 | -0.073 | -0.350 |
| predicted_R | 0.528 | 1.000 | 1.000 | Hitting_R | 0.553 | 1.000 | 0.447 | 0.000 |
| predicted_RBI | 0.740 | 0.000 | 0.000 | Hitting_RBI | 0.600 | 1.000 | -0.600 | -1.000 |
| predicted_SLG | 0.543 | 0.250 | 0.250 | Hitting_SLG | 0.494 | 1.200 | -0.244 | -0.950 |
| predicted_SO | 0.767 | 1.000 | 1.000 | Hitting_SO | 0.817 | 0.000 | 0.183 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 12 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 10 |
| Better Metrics | 1 |
| Worse Metrics | 11 |
| Biggest Boost | predicted_R: 0.5280 -> 1.0000 (boost 0.4720, better) |
| Biggest Deboost | predicted_AB: 5.4400 -> 4.0000 (deboost -1.4400, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 6 | 3 | 3 | 3 | 3 | predicted_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. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 1 | 7 | 0 | 8 | predicted_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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.333) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5412 -> 1.0000 (boost 0.4588, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 5 | 4 | 1 | 5 | 0 | predicted_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 |
| 9 | lineup_integer_allocation | 8 | 3 | 5 | 2 | 6 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 3 | 0 | 3 | 0 | predicted_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 |
| 12 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated |
| 13 | play_by_play_realization | 2 | 0 | 2 | 0 | 2 | - | 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 |
| 14 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 15 | current_json_final | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.4630 -> 0.4350 (deboost -0.0280, worse) | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.233 | - |
| predicted_3B | 0.013 | - |
| predicted_AB | 5.440 | - |
| predicted_AVG | 0.308 | - |
| predicted_BB | 0.132 | - |
| predicted_H | 1.680 | - |
| predicted_HR | 0.190 | - |
| predicted_OBP | 0.344 | - |
| predicted_R | 0.528 | - |
| predicted_RBI | 0.740 | - |
| predicted_SLG | 0.543 | - |
| predicted_SO | 0.767 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.251 | 0.017 |
| predicted_3B | 0.035 | 0.022 |
| predicted_AB | 4.773 | -0.667 |
| predicted_AVG | 0.322 | 0.014 |
| predicted_BB | 0.114 | -0.018 |
| predicted_H | 1.525 | -0.155 |
| predicted_HBP | 0.068 | - |
| predicted_HR | 0.177 | -0.013 |
| predicted_OBP | 0.353 | 0.009 |
| predicted_R | 0.572 | 0.044 |
| predicted_RBI | 0.686 | -0.054 |
| predicted_SLG | 0.552 | 0.009 |
| predicted_SO | 0.734 | -0.033 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.251 | 0.000 |
| predicted_3B | 0.035 | 0.000 |
| predicted_AB | 4.773 | 0.000 |
| predicted_AVG | 0.309 | -0.012 |
| predicted_BB | 0.113 | -0.001 |
| predicted_H | 1.477 | -0.049 |
| predicted_HBP | 0.068 | 0.000 |
| predicted_HR | 0.172 | -0.005 |
| predicted_OBP | 0.325 | -0.027 |
| predicted_R | 0.541 | -0.030 |
| predicted_RBI | 0.649 | -0.037 |
| predicted_SLG | 0.485 | -0.068 |
| predicted_SO | 0.738 | 0.004 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=5.44), rates preserved: AVG=0.240 HR/AB=0.032
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.333)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.192 | 0.192 |
| 3B | 0.012 | 0.012 |
| BB | 0.146 | 0.146 |
| H | 0.995 | -0.005 |
| HR | 0.173 | 0.173 |
| RBI | 0.546 | 0.546 |
| SO | 0.877 | -0.123 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.808 |
| 3B | 0.000 | -0.012 |
| AB | 4.000 | 0.000 |
| AVG | 0.257 | - |
| BB | 0.000 | -0.146 |
| H | 1.000 | 0.005 |
| HR | 0.000 | -0.173 |
| OBP | 0.290 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.454 |
| SLG | 0.447 | - |
| SO | 1.000 | 0.123 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 1.000 | 0.750 |
| predicted_3B | 0.000 | -0.035 |
| predicted_AB | 4.000 | -0.773 |
| predicted_AVG | 0.257 | -0.052 |
| predicted_BB | 0.000 | -0.113 |
| predicted_H | 1.000 | -0.477 |
| predicted_HR | 0.000 | -0.172 |
| predicted_OBP | 0.290 | -0.035 |
| predicted_R | 1.000 | 0.459 |
| predicted_RBI | 1.000 | 0.351 |
| predicted_SLG | 0.447 | -0.038 |
| predicted_SO | 1.000 | 0.262 |
KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.266 | 0.009 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.300 | 0.010 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SLG | 0.463 | 0.016 |
| SO | 1.000 | 0.000 |
Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -1.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -1.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 20.000 | 8.000 | 1.000 | 1.000 | 1.000 | 4.000 | 4.000 | 0.000 | 3.000 | 0.4000 | 0.4286 | 0.7000 | 0.4000 | 0.0500 | 0.2000 | 0.0000 | 0.1500 |
| last_10 | 0.20 | 10 | - | 41.000 | 17.000 | 5.000 | 1.000 | 1.000 | 6.000 | 8.000 | 0.000 | 5.000 | 0.4146 | 0.4286 | 0.6585 | 0.4146 | 0.0244 | 0.1463 | 0.0000 | 0.1220 |
| season | 0.60 | 159 | - | 609.000 | 183.000 | 37.000 | 2.000 | 27.000 | 91.000 | 84.000 | 21.000 | 122.000 | 0.3005 | 0.3255 | 0.5008 | 0.3005 | 0.0443 | 0.1494 | 0.0345 | 0.2003 |
| Metric | Value |
|---|---|
| predicted_2B | 0.2730 |
| predicted_3B | 0.0640 |
| predicted_AB | 3.9130 |
| predicted_AVG | 0.3389 |
| predicted_BB | 0.0900 |
| predicted_H | 1.3260 |
| predicted_HBP | 0.0680 |
| predicted_HR | 0.1610 |
| predicted_OBP | 0.3640 |
| predicted_R | 0.6280 |
| predicted_RBI | 0.6160 |
| predicted_SLG | 0.5648 |
| predicted_SO | 0.6920 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2330 | 0.2730 | 0.2505 | model_form_blend |
| predicted_3B | 0.0130 | 0.0640 | 0.0353 | model_form_blend |
| predicted_AB | 5.4400 | 3.9130 | 4.7729 | model_form_blend |
| predicted_AVG | 0.3080 | 0.3389 | 0.3215 | model_form_blend |
| predicted_BB | 0.1320 | 0.0900 | 0.1137 | model_form_blend |
| predicted_H | 1.6800 | 1.3260 | 1.5254 | model_form_blend |
| predicted_HBP | - | 0.0680 | 0.0680 | form_only |
| predicted_HR | 0.1900 | 0.1610 | 0.1773 | model_form_blend |
| predicted_OBP | 0.3440 | 0.3640 | 0.3527 | model_form_blend |
| predicted_R | 0.5280 | 0.6280 | 0.5717 | model_form_blend |
| predicted_RBI | 0.7400 | 0.6160 | 0.6858 | model_form_blend |
| predicted_SLG | 0.5430 | 0.5648 | 0.5525 | model_form_blend |
| predicted_SO | 0.7670 | 0.6920 | 0.7342 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 600 |
| Season rows before report date | 600 |
| Report year | 2026 |
| Profile rows used | 159 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 1 |
| Hitting_3B | 1 |
| Hitting_AB | 5 |
| Hitting_AVG | 0.6 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 3 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 6 |
| Hitting_battingOrder | 5 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | CF |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 671739 |
| playerID | 671739 |
| playerName | Michael Harris II |
| pos | CF |
| started | True |
| startingPosition | CF |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-04 |
| sl_k_percent | 19.2 |
| sl_bb_percent | 3.7 |
| sl_woba | 0.349 |
| sl_xwoba | 0.342 |
| sl_xba | 0.29 |
| sl_xslg | 0.477 |
| sl_sweet_spot_percent | 31.9 |
| sl_barrel_batted_rate | 10.3 |
| sl_hard_hit_percent | 47.6 |
| sl_exit_velocity_avg | 90.5 |
| sl_launch_angle_avg | 10.0 |
| sl_whiff_percent | 24.6 |
| sl_swing_percent | 56.4 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.185 | 0.000 | 0.000 | Hitting_2B | 0.192 | 0.000 | -0.192 | 0.000 |
| predicted_3B | 0.019 | 0.000 | 0.000 | Hitting_3B | 0.022 | 0.000 | -0.022 | 0.000 |
| predicted_AB | 4.250 | 4.000 | 4.000 | Hitting_AB | 3.822 | 3.000 | 0.178 | 1.000 |
| predicted_AVG | 0.238 | 0.500 | 0.500 | Hitting_AVG | 0.278 | 0.333 | 0.222 | 0.167 |
| predicted_BB | 0.236 | 0.000 | 0.000 | Hitting_BB | 0.247 | 1.000 | -0.247 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.022 | 0.000 | -0.022 | 0.000 |
| predicted_H | 1.010 | 2.000 | 2.000 | Hitting_H | 1.062 | 1.000 | 0.938 | 1.000 |
| predicted_HR | 0.080 | 0.000 | 0.000 | Hitting_HR | 0.081 | 0.000 | -0.081 | 0.000 |
| predicted_OBP | 0.311 | 0.500 | 0.500 | Hitting_OBP | 0.325 | 0.500 | 0.175 | 0.000 |
| predicted_R | 0.420 | 0.000 | 0.000 | Hitting_R | 0.446 | 0.000 | -0.446 | 0.000 |
| predicted_RBI | 0.460 | 0.000 | 0.000 | Hitting_RBI | 0.510 | 1.000 | -0.510 | -1.000 |
| predicted_SLG | 0.374 | 0.500 | 0.500 | Hitting_SLG | 0.403 | 0.333 | 0.097 | 0.167 |
| predicted_SO | 0.503 | 0.000 | 0.000 | Hitting_SO | 0.488 | 2.000 | -0.488 | -2.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 8 |
| Better Metrics | 4 |
| Worse Metrics | 7 |
| Biggest Boost | predicted_H: 1.0100 -> 2.0000 (boost 0.9900, better) |
| Biggest Deboost | predicted_SO: 0.5030 -> 0.0000 (deboost -0.5030, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 2 | 1 | 1 | 2 | predicted_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. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 5 | 1 | 4 | 0 | 5 | predicted_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 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3571 -> 0.0000 (deboost -0.3571, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_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 |
| 8 | lineup_integer_allocation | 7 | 2 | 5 | 3 | 4 | predicted_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 |
| 9 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | kpi_run_environment | 3 | 3 | 0 | 3 | 0 | predicted_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 |
| 11 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Market blend not applied: no props for this hitter |
| 12 | play_by_play_realization | 1 | 1 | 0 | 1 | 0 | predicted_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 |
| 13 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 14 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.185 | - |
| predicted_3B | 0.019 | - |
| predicted_AB | 4.250 | - |
| predicted_AVG | 0.238 | - |
| predicted_BB | 0.236 | - |
| predicted_H | 1.010 | - |
| predicted_HR | 0.080 | - |
| predicted_OBP | 0.311 | - |
| predicted_R | 0.420 | - |
| predicted_RBI | 0.460 | - |
| predicted_SLG | 0.374 | - |
| predicted_SO | 0.503 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.179 | -0.006 |
| predicted_3B | 0.016 | -0.003 |
| predicted_AB | 4.033 | -0.217 |
| predicted_AVG | 0.250 | 0.012 |
| predicted_BB | 0.255 | 0.019 |
| predicted_H | 1.003 | -0.007 |
| predicted_HBP | 0.016 | - |
| predicted_HR | 0.075 | -0.005 |
| predicted_OBP | 0.314 | 0.003 |
| predicted_R | 0.377 | -0.043 |
| predicted_RBI | 0.437 | -0.023 |
| predicted_SLG | 0.373 | -0.001 |
| predicted_SO | 0.583 | 0.080 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.179 | 0.000 |
| predicted_3B | 0.016 | 0.000 |
| predicted_AB | 4.033 | 0.000 |
| predicted_AVG | 0.241 | -0.009 |
| predicted_BB | 0.254 | -0.001 |
| predicted_H | 0.971 | -0.032 |
| predicted_HBP | 0.016 | 0.000 |
| predicted_HR | 0.073 | -0.002 |
| predicted_OBP | 0.286 | -0.028 |
| predicted_R | 0.357 | -0.020 |
| predicted_RBI | 0.414 | -0.023 |
| predicted_SLG | 0.347 | -0.026 |
| predicted_SO | 0.586 | 0.003 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.25), rates preserved: AVG=0.202 HR/AB=0.017
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.160 | 0.160 |
| 3B | 0.013 | 0.013 |
| BB | 0.193 | 0.193 |
| H | 0.866 | -0.134 |
| HR | 0.095 | 0.095 |
| RBI | 0.469 | 0.469 |
| SO | 0.569 | -0.431 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.160 |
| 3B | 0.000 | -0.013 |
| AB | 4.000 | 0.000 |
| AVG | 0.239 | - |
| BB | 0.000 | -0.193 |
| H | 1.000 | 0.134 |
| HR | 0.000 | -0.095 |
| OBP | 0.284 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.469 |
| SLG | 0.370 | - |
| SO | 0.000 | -0.569 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.179 |
| predicted_3B | 0.000 | -0.016 |
| predicted_AB | 4.000 | -0.033 |
| predicted_AVG | 0.239 | -0.002 |
| predicted_BB | 0.000 | -0.254 |
| predicted_H | 1.000 | 0.029 |
| predicted_HR | 0.000 | -0.073 |
| predicted_OBP | 0.284 | -0.002 |
| predicted_R | 0.000 | -0.357 |
| predicted_RBI | 0.000 | -0.414 |
| predicted_SLG | 0.370 | 0.023 |
| predicted_SO | 0.000 | -0.586 |
KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.248 | 0.009 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.293 | 0.009 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.383 | 0.013 |
| SO | 0.000 | 0.000 |
Market blend not applied: no props for this hitter
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 2.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 19.000 | 4.000 | 1.000 | 0.000 | 0.000 | 1.000 | 0.000 | 2.000 | 6.000 | 0.2105 | 0.2857 | 0.2632 | 0.2105 | 0.0000 | 0.0526 | 0.1053 | 0.3158 |
| last_10 | 0.20 | 10 | - | 38.000 | 11.000 | 1.000 | 0.000 | 1.000 | 4.000 | 3.000 | 3.000 | 7.000 | 0.2895 | 0.3415 | 0.3947 | 0.2895 | 0.0263 | 0.1053 | 0.0790 | 0.1842 |
| season | 0.60 | 157 | - | 584.000 | 161.000 | 29.000 | 3.000 | 12.000 | 74.000 | 66.000 | 37.000 | 79.000 | 0.2757 | 0.3217 | 0.3973 | 0.2757 | 0.0205 | 0.1267 | 0.0634 | 0.1353 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1710 |
| predicted_3B | 0.0120 |
| predicted_AB | 3.7540 |
| predicted_AVG | 0.2646 |
| predicted_BB | 0.2800 |
| predicted_H | 0.9930 |
| predicted_HBP | 0.0160 |
| predicted_HR | 0.0690 |
| predicted_OBP | 0.3179 |
| predicted_R | 0.3220 |
| predicted_RBI | 0.4070 |
| predicted_SLG | 0.3717 |
| predicted_SO | 0.6870 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1850 | 0.1710 | 0.1789 | model_form_blend |
| predicted_3B | 0.0190 | 0.0120 | 0.0159 | model_form_blend |
| predicted_AB | 4.2500 | 3.7540 | 4.0334 | model_form_blend |
| predicted_AVG | 0.2380 | 0.2646 | 0.2496 | model_form_blend |
| predicted_BB | 0.2360 | 0.2800 | 0.2552 | model_form_blend |
| predicted_H | 1.0100 | 0.9930 | 1.0026 | model_form_blend |
| predicted_HBP | - | 0.0160 | 0.0160 | form_only |
| predicted_HR | 0.0800 | 0.0690 | 0.0752 | model_form_blend |
| predicted_OBP | 0.3110 | 0.3179 | 0.3140 | model_form_blend |
| predicted_R | 0.4200 | 0.3220 | 0.3772 | model_form_blend |
| predicted_RBI | 0.4600 | 0.4070 | 0.4369 | model_form_blend |
| predicted_SLG | 0.3740 | 0.3717 | 0.3730 | model_form_blend |
| predicted_SO | 0.5030 | 0.6870 | 0.5833 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 594 |
| Season rows before report date | 594 |
| Report year | 2026 |
| Profile rows used | 157 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 2 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.333 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 2 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 6 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | SS |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 643289 |
| playerID | 643289 |
| playerName | Mauricio Dubón |
| pos | LF |
| started | True |
| startingPosition | SS |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-04 |
| sl_k_percent | 11.8 |
| sl_bb_percent | 5.7 |
| sl_woba | 0.317 |
| sl_xwoba | 0.304 |
| sl_xba | 0.268 |
| sl_xslg | 0.375 |
| sl_sweet_spot_percent | 36.5 |
| sl_barrel_batted_rate | 4.0 |
| sl_hard_hit_percent | 29.4 |
| sl_exit_velocity_avg | 86.5 |
| sl_launch_angle_avg | 16.1 |
| sl_whiff_percent | 15.3 |
| sl_swing_percent | 53.7 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.170 | 0.000 | 0.000 | Hitting_2B | 0.180 | 0.000 | -0.180 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 2.938 | 3.000 | 3.000 | Hitting_AB | 2.220 | 2.000 | 0.780 | 1.000 |
| predicted_AVG | 0.222 | 0.000 | 0.000 | Hitting_AVG | 0.171 | 0.000 | -0.171 | 0.000 |
| predicted_BB | 0.366 | 0.000 | 0.000 | Hitting_BB | 0.280 | 0.000 | -0.280 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.652 | 0.000 | 0.000 | Hitting_H | 0.380 | 0.000 | -0.380 | 0.000 |
| predicted_HR | 0.098 | 0.000 | 0.000 | Hitting_HR | 0.040 | 0.000 | -0.040 | 0.000 |
| predicted_OBP | 0.308 | 0.000 | 0.000 | Hitting_OBP | 0.264 | 0.000 | -0.264 | 0.000 |
| predicted_R | 0.312 | 0.000 | 0.000 | Hitting_R | 0.300 | 0.000 | -0.300 | 0.000 |
| predicted_RBI | 0.348 | 1.000 | 1.000 | Hitting_RBI | 0.140 | 0.000 | 0.860 | 1.000 |
| predicted_SLG | 0.380 | 0.000 | 0.000 | Hitting_SLG | 0.306 | 0.000 | -0.306 | 0.000 |
| predicted_SO | 0.848 | 1.000 | 1.000 | Hitting_SO | 0.800 | 1.000 | 0.200 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 4 |
| Deboosted Metrics | 6 |
| Better Metrics | 2 |
| Worse Metrics | 7 |
| Biggest Boost | predicted_SF: 0.0000 -> 1.0000 (boost 1.0000, higher) |
| Biggest Deboost | predicted_H: 0.6520 -> 0.0000 (deboost -0.6520, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 6 | 0 | 6 | 0 | 6 | - | 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. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 3 | 4 | 2 | 5 | predicted_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 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.2824 -> 0.0000 (deboost -0.2824, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 5 | 4 | 1 | 4 | 1 | predicted_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 |
| 8 | lineup_integer_allocation | 7 | 2 | 5 | 2 | 5 | predicted_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 |
| 9 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | kpi_run_environment | 3 | 3 | 0 | 3 | 0 | predicted_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 |
| 11 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Market blend not applied: no props for this hitter |
| 12 | play_by_play_realization | 2 | 2 | 0 | 1 | 0 | predicted_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 |
| 13 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 14 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.170 | - |
| predicted_3B | 0.000 | - |
| 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.380 | - |
| predicted_SO | 0.848 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.148 | -0.022 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 2.833 | -0.105 |
| predicted_AVG | 0.198 | -0.024 |
| predicted_BB | 0.336 | -0.030 |
| predicted_H | 0.565 | -0.087 |
| predicted_HBP | 0.011 | - |
| predicted_HR | 0.080 | -0.018 |
| predicted_OBP | 0.283 | -0.025 |
| predicted_R | 0.298 | -0.014 |
| predicted_RBI | 0.286 | -0.062 |
| predicted_SLG | 0.335 | -0.045 |
| predicted_SO | 0.885 | 0.037 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.148 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 2.833 | 0.000 |
| predicted_AVG | 0.193 | -0.005 |
| predicted_BB | 0.334 | -0.002 |
| predicted_H | 0.547 | -0.018 |
| predicted_HBP | 0.011 | 0.000 |
| predicted_HR | 0.078 | -0.002 |
| predicted_OBP | 0.278 | -0.005 |
| predicted_R | 0.282 | -0.016 |
| predicted_RBI | 0.271 | -0.015 |
| predicted_SLG | 0.328 | -0.007 |
| predicted_SO | 0.889 | 0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=2.94), rates preserved: AVG=0.165 HR/AB=0.027
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.145 | 0.145 |
| 3B | 0.007 | 0.007 |
| BB | 0.282 | 0.282 |
| H | 0.679 | -0.321 |
| HR | 0.113 | 0.113 |
| RBI | 0.386 | 0.386 |
| SO | 0.953 | -0.047 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.145 |
| 3B | 0.000 | -0.007 |
| AB | 3.000 | 0.000 |
| AVG | 0.210 | - |
| BB | 0.000 | -0.282 |
| H | 0.000 | -0.679 |
| HR | 0.000 | -0.113 |
| OBP | 0.279 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.386 |
| SLG | 0.365 | - |
| SO | 1.000 | 0.047 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.148 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 3.000 | 0.167 |
| predicted_AVG | 0.210 | 0.017 |
| predicted_BB | 0.000 | -0.334 |
| predicted_H | 0.000 | -0.547 |
| predicted_HR | 0.000 | -0.078 |
| predicted_OBP | 0.279 | 0.001 |
| predicted_R | 0.000 | -0.282 |
| predicted_RBI | 0.000 | -0.271 |
| predicted_SLG | 0.365 | 0.037 |
| predicted_SO | 1.000 | 0.111 |
KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| AVG | 0.218 | 0.008 |
| BB | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.288 | 0.009 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.378 | 0.013 |
| SO | 1.000 | 0.000 |
Market blend not applied: no props for this hitter
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 1.000 |
| SF | 1.000 | 1.000 |
| SO | 1.000 | 0.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SF | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 10.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 1.000 | 1.000 | 6.000 | 0.0000 | 0.0909 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | 0.1000 | 0.6000 |
| last_10 | 0.20 | 10 | - | 22.000 | 3.000 | 1.000 | 0.000 | 0.000 | 0.000 | 2.000 | 2.000 | 7.000 | 0.1364 | 0.2083 | 0.1818 | 0.1364 | 0.0000 | 0.0000 | 0.0909 | 0.3182 |
| season | 0.60 | 112 | - | 329.000 | 73.000 | 19.000 | 0.000 | 11.000 | 39.000 | 35.000 | 41.000 | 95.000 | 0.2219 | 0.3110 | 0.3799 | 0.2219 | 0.0334 | 0.1185 | 0.1246 | 0.2888 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1180 |
| predicted_3B | 0.0010 |
| predicted_AB | 2.6920 |
| predicted_AVG | 0.1669 |
| predicted_BB | 0.2950 |
| predicted_H | 0.4490 |
| predicted_HBP | 0.0110 |
| predicted_HR | 0.0570 |
| predicted_OBP | 0.2508 |
| predicted_R | 0.2800 |
| predicted_RBI | 0.2030 |
| predicted_SLG | 0.2749 |
| predicted_SO | 0.9340 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1700 | 0.1180 | 0.1477 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 2.9380 | 2.6920 | 2.8327 | model_form_blend |
| predicted_AVG | 0.2220 | 0.1669 | 0.1984 | model_form_blend |
| predicted_BB | 0.3660 | 0.2950 | 0.3356 | model_form_blend |
| predicted_H | 0.6520 | 0.4490 | 0.5651 | model_form_blend |
| predicted_HBP | - | 0.0110 | 0.0110 | form_only |
| predicted_HR | 0.0980 | 0.0570 | 0.0804 | model_form_blend |
| predicted_OBP | 0.3080 | 0.2508 | 0.2835 | model_form_blend |
| predicted_R | 0.3120 | 0.2800 | 0.2983 | model_form_blend |
| predicted_RBI | 0.3480 | 0.2030 | 0.2859 | model_form_blend |
| predicted_SLG | 0.3800 | 0.2749 | 0.3350 | model_form_blend |
| predicted_SO | 0.8480 | 0.9340 | 0.8848 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 50 |
| Season rows before report date | 50 |
| Report year | 2026 |
| Profile rows used | 112 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 1 |
| BB | 0 |
| SO | 1 |
| SF | 1 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 2 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 9 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | LF |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 657041 |
| playerID | 657041 |
| playerName | Lane Thomas |
| pos | LF |
| started | True |
| startingPosition | LF |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-04 |
| sl_k_percent | 24.9 |
| sl_bb_percent | 11.8 |
| sl_woba | 0.313 |
| sl_xwoba | 0.311 |
| sl_xba | 0.238 |
| sl_xslg | 0.365 |
| sl_sweet_spot_percent | 36.2 |
| sl_barrel_batted_rate | 6.4 |
| sl_hard_hit_percent | 40.9 |
| sl_exit_velocity_avg | 89.3 |
| sl_launch_angle_avg | 17.4 |
| sl_whiff_percent | 22.9 |
| sl_swing_percent | 41.3 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.123 | 0.000 | 0.000 | Hitting_2B | 0.137 | 0.000 | -0.137 | 0.000 |
| predicted_3B | 0.012 | 0.000 | 0.000 | Hitting_3B | 0.013 | 0.000 | -0.013 | 0.000 |
| predicted_AB | 3.528 | 2.000 | 2.000 | Hitting_AB | 3.611 | 3.000 | -1.611 | -1.000 |
| predicted_AVG | 0.192 | 0.000 | 0.000 | Hitting_AVG | 0.226 | 0.000 | -0.226 | 0.000 |
| predicted_BB | 0.313 | 2.000 | 2.000 | Hitting_BB | 0.318 | 0.000 | 1.682 | 2.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.015 | 0.000 | -0.015 | 0.000 |
| predicted_H | 0.660 | 0.000 | 0.000 | Hitting_H | 0.817 | 0.000 | -0.817 | 0.000 |
| predicted_HR | 0.170 | 0.000 | 0.000 | Hitting_HR | 0.117 | 0.000 | -0.117 | 0.000 |
| predicted_OBP | 0.293 | 0.500 | 0.500 | Hitting_OBP | 0.302 | 0.250 | 0.198 | 0.250 |
| predicted_R | 0.405 | 0.000 | 0.000 | Hitting_R | 0.430 | 0.000 | -0.430 | 0.000 |
| predicted_RBI | 0.470 | 0.000 | 0.000 | Hitting_RBI | 0.478 | 0.000 | -0.478 | 0.000 |
| predicted_SLG | 0.357 | 0.000 | 0.000 | Hitting_SLG | 0.369 | 0.000 | -0.369 | 0.000 |
| predicted_SO | 1.233 | 1.000 | 1.000 | Hitting_SO | 1.262 | 1.000 | -0.262 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 12 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 9 |
| Better Metrics | 4 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_BB: 0.3130 -> 2.0000 (boost 1.6870, better) |
| Biggest Deboost | predicted_AB: 3.5280 -> 2.0000 (deboost -1.5280, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 1 | 7 | 2 | 6 | predicted_H: 0.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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.200) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3846 -> 0.0000 (deboost -0.3846, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_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 |
| 9 | lineup_integer_allocation | 8 | 3 | 5 | 4 | 4 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 3 | 0 | 3 | 0 | predicted_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 |
| 12 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated |
| 13 | play_by_play_realization | 3 | 1 | 2 | 1 | 2 | predicted_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 |
| 14 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 15 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.123 | - |
| predicted_3B | 0.012 | - |
| predicted_AB | 3.528 | - |
| predicted_AVG | 0.192 | - |
| predicted_BB | 0.313 | - |
| predicted_H | 0.660 | - |
| predicted_HR | 0.170 | - |
| predicted_OBP | 0.293 | - |
| predicted_R | 0.405 | - |
| predicted_RBI | 0.470 | - |
| predicted_SLG | 0.357 | - |
| predicted_SO | 1.233 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.102 | -0.021 |
| predicted_3B | 0.010 | -0.002 |
| predicted_AB | 3.487 | -0.041 |
| predicted_AVG | 0.191 | -0.002 |
| predicted_BB | 0.354 | 0.041 |
| predicted_H | 0.654 | -0.006 |
| predicted_HBP | 0.168 | - |
| predicted_HR | 0.172 | 0.002 |
| predicted_OBP | 0.297 | 0.004 |
| predicted_R | 0.406 | 0.001 |
| predicted_RBI | 0.491 | 0.021 |
| predicted_SLG | 0.361 | 0.005 |
| predicted_SO | 1.186 | -0.047 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.102 | 0.000 |
| predicted_3B | 0.010 | 0.000 |
| predicted_AB | 3.487 | 0.000 |
| predicted_AVG | 0.182 | -0.009 |
| predicted_BB | 0.353 | -0.002 |
| predicted_H | 0.633 | -0.021 |
| predicted_HBP | 0.168 | 0.000 |
| predicted_HR | 0.167 | -0.005 |
| predicted_OBP | 0.257 | -0.040 |
| predicted_R | 0.385 | -0.022 |
| predicted_RBI | 0.465 | -0.026 |
| predicted_SLG | 0.360 | -0.001 |
| predicted_SO | 1.192 | 0.006 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.53), rates preserved: AVG=0.159 HR/AB=0.047
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.200)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.146 | 0.146 |
| 3B | 0.010 | 0.010 |
| BB | 0.225 | 0.225 |
| H | 0.686 | -0.314 |
| HR | 0.117 | 0.117 |
| RBI | 0.413 | 0.413 |
| SO | 1.209 | 0.209 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.146 |
| 3B | 0.000 | -0.010 |
| AB | 3.000 | 0.000 |
| AVG | 0.206 | - |
| BB | 0.000 | -0.225 |
| H | 1.000 | 0.314 |
| HR | 0.000 | -0.117 |
| OBP | 0.262 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.413 |
| SLG | 0.361 | - |
| SO | 1.000 | -0.209 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.102 |
| predicted_3B | 0.000 | -0.010 |
| predicted_AB | 3.000 | -0.487 |
| predicted_AVG | 0.206 | 0.024 |
| predicted_BB | 0.000 | -0.353 |
| predicted_H | 1.000 | 0.367 |
| predicted_HR | 0.000 | -0.167 |
| predicted_OBP | 0.262 | 0.005 |
| predicted_R | 0.000 | -0.385 |
| predicted_RBI | 0.000 | -0.465 |
| predicted_SLG | 0.361 | 0.001 |
| predicted_SO | 1.000 | -0.192 |
KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| AVG | 0.214 | 0.008 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.271 | 0.009 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.374 | 0.013 |
| SO | 1.000 | 0.000 |
Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 2.000 | -1.000 |
| BB | 2.000 | 2.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 2.000 | 0.000 |
| BB | 2.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 16.000 | 2.000 | 0.000 | 0.000 | 1.000 | 3.000 | 2.000 | 3.000 | 4.000 | 0.1250 | 0.3333 | 0.3125 | 0.1250 | 0.0625 | 0.1875 | 0.1875 | 0.2500 |
| last_10 | 0.20 | 10 | - | 33.000 | 5.000 | 0.000 | 0.000 | 3.000 | 6.000 | 4.000 | 5.000 | 12.000 | 0.1515 | 0.2927 | 0.4242 | 0.1515 | 0.0909 | 0.1818 | 0.1515 | 0.3636 |
| season | 0.60 | 163 | - | 575.000 | 125.000 | 20.000 | 2.000 | 20.000 | 75.000 | 66.000 | 51.000 | 201.000 | 0.2174 | 0.2935 | 0.3635 | 0.2174 | 0.0348 | 0.1304 | 0.0887 | 0.3496 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0760 |
| predicted_3B | 0.0070 |
| predicted_AB | 3.4340 |
| predicted_AVG | 0.1885 |
| predicted_BB | 0.4080 |
| predicted_H | 0.6470 |
| predicted_HBP | 0.1680 |
| predicted_HR | 0.1740 |
| predicted_OBP | 0.3015 |
| predicted_R | 0.4080 |
| predicted_RBI | 0.5180 |
| predicted_SLG | 0.3673 |
| predicted_SO | 1.1250 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1230 | 0.0760 | 0.1025 | model_form_blend |
| predicted_3B | 0.0120 | 0.0070 | 0.0098 | model_form_blend |
| predicted_AB | 3.5280 | 3.4340 | 3.4869 | model_form_blend |
| predicted_AVG | 0.1920 | 0.1885 | 0.1905 | model_form_blend |
| predicted_BB | 0.3130 | 0.4080 | 0.3545 | model_form_blend |
| predicted_H | 0.6600 | 0.6470 | 0.6543 | model_form_blend |
| predicted_HBP | - | 0.1680 | 0.1680 | form_only |
| predicted_HR | 0.1700 | 0.1740 | 0.1717 | model_form_blend |
| predicted_OBP | 0.2930 | 0.3015 | 0.2967 | model_form_blend |
| predicted_R | 0.4050 | 0.4080 | 0.4063 | model_form_blend |
| predicted_RBI | 0.4700 | 0.5180 | 0.4910 | model_form_blend |
| predicted_SLG | 0.3570 | 0.3673 | 0.3615 | model_form_blend |
| predicted_SO | 1.2330 | 1.1250 | 1.1858 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 607 |
| Season rows before report date | 607 |
| Report year | 2026 |
| Profile rows used | 163 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 2 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 2 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 1 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 8 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 3B |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 663586 |
| playerID | 663586 |
| playerName | Austin Riley |
| pos | 3B |
| started | True |
| startingPosition | 3B |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-04 |
| sl_k_percent | 31.9 |
| sl_bb_percent | 7.6 |
| sl_woba | 0.29 |
| sl_xwoba | 0.299 |
| sl_xba | 0.213 |
| sl_xslg | 0.396 |
| sl_sweet_spot_percent | 34.3 |
| sl_barrel_batted_rate | 12.4 |
| sl_hard_hit_percent | 44.3 |
| sl_exit_velocity_avg | 91.3 |
| sl_launch_angle_avg | 18.5 |
| sl_whiff_percent | 31.9 |
| sl_swing_percent | 48.8 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.021 | 0.000 | 0.000 | Hitting_2B | 0.028 | 0.000 | -0.028 | 0.000 |
| predicted_3B | 0.021 | 0.000 | 0.000 | Hitting_3B | 0.007 | 0.000 | -0.007 | 0.000 |
| predicted_AB | 2.771 | 3.000 | 3.000 | Hitting_AB | 2.799 | 1.000 | 0.201 | 2.000 |
| predicted_AVG | 0.127 | 0.333 | 0.333 | Hitting_AVG | 0.114 | 0.000 | 0.219 | 0.333 |
| predicted_BB | 0.375 | 0.000 | 0.000 | Hitting_BB | 0.354 | 1.000 | -0.354 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.160 | 1.000 | 1.000 | Hitting_H | 0.319 | 0.000 | 0.681 | 1.000 |
| predicted_HR | 0.010 | 0.000 | 0.000 | Hitting_HR | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_OBP | 0.264 | 0.500 | 0.500 | Hitting_OBP | 0.221 | 0.500 | 0.279 | 0.000 |
| predicted_R | 0.229 | 1.000 | 1.000 | Hitting_R | 0.222 | 0.000 | 0.778 | 1.000 |
| predicted_RBI | 0.120 | 0.000 | 0.000 | Hitting_RBI | 0.174 | 0.000 | -0.174 | 0.000 |
| predicted_SLG | 0.177 | 0.333 | 0.333 | Hitting_SLG | 0.129 | 0.000 | 0.204 | 0.333 |
| predicted_SO | 0.854 | 1.000 | 1.000 | Hitting_SO | 0.806 | 1.000 | 0.194 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 10 |
| Boosted Metrics | 8 |
| Deboosted Metrics | 2 |
| Better Metrics | 7 |
| Worse Metrics | 3 |
| Biggest Boost | predicted_HBP: 0.0140 -> 1.0000 (boost 0.9860, better) |
| Biggest Deboost | predicted_BB: 0.3750 -> 0.0000 (deboost -0.3750, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 4 | 0 | 4 | 0 | predicted_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. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 5 | 2 | 3 | 1 | 4 | predicted_AB: 2.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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=7.0, weight=0.076, BvP AVG=0.429) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3005 -> 0.0000 (deboost -0.3005, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 5 | 1 | 6 | 0 | predicted_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 |
| 9 | lineup_integer_allocation | 9 | 4 | 5 | 3 | 6 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 3 | 0 | 3 | 0 | predicted_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 |
| 12 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated |
| 13 | play_by_play_realization | 3 | 3 | 0 | 3 | 0 | predicted_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 |
| 14 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 15 | current_json_final | 3 | 0 | 3 | 0 | 3 | - | predicted_AVG: 0.2120 -> 0.2000 (deboost -0.0120, worse) | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.021 | - |
| predicted_3B | 0.021 | - |
| predicted_AB | 2.771 | - |
| predicted_AVG | 0.127 | - |
| predicted_BB | 0.375 | - |
| predicted_H | 0.160 | - |
| predicted_HR | 0.010 | - |
| predicted_OBP | 0.264 | - |
| predicted_R | 0.229 | - |
| predicted_RBI | 0.120 | - |
| predicted_SLG | 0.177 | - |
| predicted_SO | 0.854 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.025 | 0.004 |
| predicted_3B | 0.045 | 0.024 |
| predicted_AB | 2.749 | -0.022 |
| predicted_AVG | 0.125 | -0.002 |
| predicted_BB | 0.450 | 0.075 |
| predicted_H | 0.230 | 0.070 |
| predicted_HBP | 0.014 | - |
| predicted_HR | 0.012 | 0.002 |
| predicted_OBP | 0.266 | 0.002 |
| predicted_R | 0.317 | 0.088 |
| predicted_RBI | 0.132 | 0.012 |
| predicted_SLG | 0.191 | 0.014 |
| predicted_SO | 0.897 | 0.043 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.025 | 0.000 |
| predicted_3B | 0.045 | 0.000 |
| predicted_AB | 2.749 | 0.000 |
| predicted_AVG | 0.081 | -0.045 |
| predicted_BB | 0.448 | -0.002 |
| predicted_H | 0.223 | -0.007 |
| predicted_HBP | 0.014 | 0.000 |
| predicted_HR | 0.012 | -0.000 |
| predicted_OBP | 0.210 | -0.056 |
| predicted_R | 0.300 | -0.017 |
| predicted_RBI | 0.125 | -0.007 |
| predicted_SLG | 0.136 | -0.055 |
| predicted_SO | 0.902 | 0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=2.77), rates preserved: AVG=0.071 HR/AB=0.004
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 0.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=7.0, weight=0.076, BvP AVG=0.429)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.102 | 0.102 |
| 3B | 0.010 | 0.010 |
| BB | 0.248 | 0.248 |
| H | 0.580 | 0.580 |
| HR | 0.073 | 0.073 |
| RBI | 0.314 | 0.314 |
| SO | 0.866 | -0.134 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.102 |
| 3B | 0.000 | -0.010 |
| AB | 3.000 | 0.000 |
| AVG | 0.204 | - |
| BB | 0.000 | -0.248 |
| H | 0.000 | -0.580 |
| HR | 0.000 | -0.073 |
| OBP | 0.274 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.314 |
| SLG | 0.324 | - |
| SO | 1.000 | 0.134 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.025 |
| predicted_3B | 0.000 | -0.045 |
| predicted_AB | 3.000 | 0.251 |
| predicted_AVG | 0.204 | 0.123 |
| predicted_BB | 0.000 | -0.448 |
| predicted_H | 0.000 | -0.223 |
| predicted_HR | 0.000 | -0.012 |
| predicted_OBP | 0.274 | 0.064 |
| predicted_R | 0.000 | -0.300 |
| predicted_RBI | 0.000 | -0.125 |
| predicted_SLG | 0.324 | 0.188 |
| predicted_SO | 1.000 | 0.098 |
KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| AVG | 0.212 | 0.008 |
| BB | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.283 | 0.009 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.336 | 0.012 |
| SO | 1.000 | 0.000 |
Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 1.000 |
| HBP | 1.000 | 1.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 1.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 9.000 | 1.000 | 0.000 | 1.000 | 0.000 | 0.000 | 4.000 | 5.000 | 5.000 | 0.1111 | 0.4286 | 0.3333 | 0.1111 | 0.0000 | 0.0000 | 0.5556 | 0.5556 |
| last_10 | 0.20 | 10 | - | 24.000 | 1.000 | 0.000 | 1.000 | 0.000 | 0.000 | 4.000 | 5.000 | 10.000 | 0.0417 | 0.2069 | 0.1250 | 0.0417 | 0.0000 | 0.0000 | 0.2083 | 0.4167 |
| season | 0.60 | 48 | - | 133.000 | 15.000 | 1.000 | 1.000 | 0.000 | 9.000 | 11.000 | 18.000 | 41.000 | 0.1128 | 0.2237 | 0.1353 | 0.1128 | 0.0000 | 0.0677 | 0.1353 | 0.3083 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0310 |
| predicted_3B | 0.0810 |
| predicted_AB | 2.7170 |
| predicted_AVG | 0.1229 |
| predicted_BB | 0.5620 |
| predicted_H | 0.3340 |
| predicted_HBP | 0.0140 |
| predicted_HR | 0.0160 |
| predicted_OBP | 0.2686 |
| predicted_R | 0.4490 |
| predicted_RBI | 0.1490 |
| predicted_SLG | 0.2115 |
| predicted_SO | 0.9610 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.0210 | 0.0310 | 0.0250 | model_form_blend |
| predicted_3B | 0.0210 | 0.0810 | 0.0451 | model_form_blend |
| predicted_AB | 2.7710 | 2.7170 | 2.7493 | model_form_blend |
| predicted_AVG | 0.1270 | 0.1229 | 0.1254 | model_form_blend |
| predicted_BB | 0.3750 | 0.5620 | 0.4501 | model_form_blend |
| predicted_H | 0.1600 | 0.3340 | 0.2299 | model_form_blend |
| predicted_HBP | - | 0.0140 | 0.0140 | form_only |
| predicted_HR | 0.0100 | 0.0160 | 0.0124 | model_form_blend |
| predicted_OBP | 0.2640 | 0.2686 | 0.2658 | model_form_blend |
| predicted_R | 0.2290 | 0.4490 | 0.3174 | model_form_blend |
| predicted_RBI | 0.1200 | 0.1490 | 0.1317 | model_form_blend |
| predicted_SLG | 0.1770 | 0.2115 | 0.1909 | model_form_blend |
| predicted_SO | 0.8540 | 0.9610 | 0.8970 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 144 |
| Season rows before report date | 144 |
| Report year | 2026 |
| Profile rows used | 48 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 1 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 1 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 9 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | SS |
| gameID | 20261003_ATL@LAD |
| game_type | full |
| mlbID | 673490 |
| playerID | 673490 |
| playerName | Ha-Seong Kim |
| pos | SS |
| started | True |
| startingPosition | SS |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-03 |
| sl_k_percent | 25.9 |
| sl_bb_percent | 10.9 |
| sl_woba | 0.18 |
| sl_xwoba | 0.222 |
| sl_xba | 0.157 |
| sl_xslg | 0.206 |
| sl_sweet_spot_percent | 21.7 |
| sl_barrel_batted_rate | 2.2 |
| sl_hard_hit_percent | 25.0 |
| sl_exit_velocity_avg | 85.9 |
| sl_launch_angle_avg | 19.9 |
| sl_whiff_percent | 20.2 |
| sl_swing_percent | 42.7 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 1.000 | 1.000 | 1.000 | Pitching_BB | 1.103 | 0.000 | -0.103 | 1.000 |
| predicted_ER | 2.000 | 2.000 | 2.000 | Pitching_ER | 1.448 | 0.000 | 0.552 | 2.000 |
| predicted_H | 6.000 | 6.000 | 6.000 | Pitching_H | 4.621 | 1.000 | 1.379 | 5.000 |
| predicted_IP | 6.000 | 6.000 | 6.000 | Pitching_InningsPitched | 5.793 | 1.100 | 0.207 | 4.900 |
| predicted_SO | 5.000 | 5.000 | 5.000 | Pitching_SO | 7.310 | 3.000 | -2.310 | 2.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_rate_projection |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 4 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 3 |
| Better Metrics | 1 |
| Worse Metrics | 3 |
| Biggest Boost | predicted_H: 4.0000 -> 6.0000 (boost 2.0000, worse) |
| Biggest Deboost | predicted_ER: 3.0000 -> 2.0000 (deboost -1.0000, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_rate_projection | 0 | 0 | 0 | 0 | 0 | - | - | Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty |
| 2 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 3 | team_form_adjustment | 0 | 0 | 0 | 0 | 0 | - | - | Club form: innings, run prevention and strikeout factors |
| 4 | savant_pitcher_quality | 0 | 0 | 0 | 0 | 0 | - | - | Statcast pitch quality: strikeout, walk, home-run and run-prevention factors |
| 5 | opposing_lineup_context | 0 | 0 | 0 | 0 | 0 | - | - | The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances |
| 6 | kpi_run_environment | 0 | 0 | 0 | 0 | 0 | - | - | KPI blend published; the staff line follows the published score, not a KPI rescale |
| 7 | pitcher_quality_guardrail | 3 | 1 | 2 | 2 | 1 | predicted_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. |
| 8 | market_blend | 0 | 0 | 0 | 0 | 0 | - | - | Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score |
| 9 | play_by_play_realization | 2 | 1 | 1 | 0 | 2 | predicted_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 |
| 10 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
| Metric | Value | Delta vs Prev Step |
|---|
Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | - |
| predicted_ER | 3.000 | - |
| predicted_H | 4.000 | - |
| predicted_HR | 1.000 | - |
| predicted_IP | 6.333 | - |
| predicted_SO | 6.000 | - |
Club form: innings, run prevention and strikeout factors
| Metric | Value | Delta vs Prev Step |
|---|
Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
| Metric | Value | Delta vs Prev Step |
|---|
The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances
| Metric | Value | Delta vs Prev Step |
|---|
KPI blend published; the staff line follows the published score, not a KPI rescale
| Metric | Value | Delta vs Prev Step |
|---|
Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | 0.000 |
| predicted_ER | 2.000 | -1.000 |
| predicted_H | 4.000 | 0.000 |
| predicted_HR | 1.000 | 0.000 |
| predicted_IP | 6.100 | -0.233 |
| predicted_SO | 7.000 | 1.000 |
Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| BB | 1.000 | - |
| BF | 28.000 | - |
| ER | 2.000 | - |
| H | 6.000 | - |
| HR | 1.000 | - |
| IP | 6.000 | - |
| Pitches | 99.000 | - |
| R | 3.000 | - |
| SO | 5.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 26.100 | 9.000 | 18.000 | 4.000 | 35.000 | 2.000 | 3.0759 | 0.8354 | 0.3418 | 0.6835 | 0.1519 | 1.3291 | 0.0760 |
| last_10 | 0.35 | 10 | 59.100 | 15.000 | 43.000 | 6.000 | 78.000 | 2.000 | 2.2753 | 0.8258 | 0.2528 | 0.7247 | 0.1011 | 1.3146 | 0.0337 |
| season | 0.20 | 29 | 170.100 | 42.000 | 134.000 | 32.000 | 212.000 | 10.000 | 2.2192 | 0.9746 | 0.2466 | 0.7867 | 0.1879 | 1.2446 | 0.0587 |
| Metric | Value |
|---|---|
| predicted_BB | 1.0230 |
| predicted_ER | 1.8780 |
| predicted_ERA | 2.9175 |
| predicted_H | 4.3890 |
| predicted_HR | 0.4110 |
| predicted_IP | 5.2000 |
| predicted_SO | 7.2540 |
| predicted_WHIP | 0.9342 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 1.0000 | 1.0230 | 1.0135 | model_form_blend |
| predicted_ER | 3.0000 | 1.8780 | 2.3404 | model_form_blend |
| predicted_ERA | - | 2.9175 | 2.9175 | form_only |
| predicted_H | 4.0000 | 4.3890 | 4.2287 | model_form_blend |
| predicted_HR | 1.0000 | 0.4110 | 0.6538 | model_form_blend |
| predicted_IP | 6.1000 | 5.2000 | 6.0000 | model_form_blend |
| predicted_SO | 6.0000 | 7.2540 | 6.7372 | model_form_blend |
| predicted_WHIP | - | 0.9342 | 0.9342 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 29 |
| Season rows before report date | 29 |
| Report year | 2026 |
| Profile rows used | 29 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 6.0 |
| H | 6 |
| R | 3 |
| ER | 2 |
| BB | 1 |
| SO | 5 |
| HR | 1 |
| BF | 28 |
| Pitches | 99 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 5 |
| Pitching_ER | 0 |
| Pitching_ERA | 3.52 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 1 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.1 |
| Pitching_Pitches | 21 |
| Pitching_R | 0 |
| Pitching_SO | 3 |
| Pitching_Strikes | 14 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 6 |
| allPositionsPlayed | P |
| gameID | 20261001_PHI@ATL |
| game_type | full |
| mlbID | 519242 |
| playerID | 519242 |
| playerName | Chris Sale |
| pos | P |
| started | False |
| startingPosition | P |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-01 |
| sl_k_percent | 30.9 |
| sl_bb_percent | 4.8 |
| sl_woba | 0.259 |
| sl_xwoba | 0.267 |
| sl_sweet_spot_percent | 34.3 |
| sl_barrel_batted_rate | 6.2 |
| sl_hard_hit_percent | 35.1 |
| sl_whiff_percent | 30.4 |
| sl_swing_percent | 50.7 |
| sl_avg_best_speed | 76.8971828 |
| sl_avg_hyper_speed | 93.43608195 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.280 | 0.000 | -0.280 | 0.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.300 | 0.000 | -0.300 | 0.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.680 | 2.000 | 0.320 | -1.000 |
| predicted_IP | 1.000 | 1.000 | 1.000 | Pitching_InningsPitched | 0.950 | 3.000 | 0.050 | -2.000 |
| predicted_SO | 0.000 | 0.000 | 0.000 | Pitching_SO | 1.140 | 4.000 | -1.140 | -4.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_rate_projection |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 1 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 1 |
| Better Metrics | 0 |
| Worse Metrics | 1 |
| Biggest Boost | - |
| Biggest Deboost | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_rate_projection | 0 | 0 | 0 | 0 | 0 | - | - | Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty |
| 2 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 3 | team_form_adjustment | 0 | 0 | 0 | 0 | 0 | - | - | Club form: innings, run prevention and strikeout factors |
| 4 | savant_pitcher_quality | 0 | 0 | 0 | 0 | 0 | - | - | Statcast pitch quality: strikeout, walk, home-run and run-prevention factors |
| 5 | opposing_lineup_context | 0 | 0 | 0 | 0 | 0 | - | - | The nine hitters he faces: batter quality, weighted by plate appearances |
| 6 | kpi_run_environment | 0 | 0 | 0 | 0 | 0 | - | - | KPI blend published; the staff line follows the published score, not a KPI rescale |
| 7 | play_by_play_realization | 1 | 0 | 1 | 0 | 1 | - | 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 |
| 8 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
| Metric | Value | Delta vs Prev Step |
|---|
Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 1.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 1.000 | - |
Club form: innings, run prevention and strikeout factors
| Metric | Value | Delta vs Prev Step |
|---|
Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
| Metric | Value | Delta vs Prev Step |
|---|
The nine hitters he faces: batter quality, weighted by plate appearances
| Metric | Value | Delta vs Prev Step |
|---|
KPI blend published; the staff line follows the published score, not a KPI rescale
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| BB | 0.000 | - |
| BF | 4.000 | - |
| ER | 0.000 | - |
| H | 1.000 | - |
| HR | 0.000 | - |
| IP | 1.000 | - |
| Pitches | 13.000 | - |
| R | 0.000 | - |
| SO | 0.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 7.200 | 3.000 | 6.000 | 0.000 | 10.000 | 1.000 | 3.5217 | 0.7826 | 0.3913 | 0.7826 | 0.0000 | 1.3043 | 0.1304 |
| last_10 | 0.35 | 10 | 11.100 | 5.000 | 9.000 | 1.000 | 14.000 | 3.000 | 3.9706 | 0.8824 | 0.4412 | 0.7941 | 0.0882 | 1.2353 | 0.2647 |
| season | 0.20 | 50 | 53.100 | 15.000 | 34.000 | 14.000 | 57.000 | 7.000 | 2.5312 | 0.9000 | 0.2812 | 0.6375 | 0.2625 | 1.0688 | 0.1313 |
| Metric | Value |
|---|---|
| predicted_BB | 0.2130 |
| predicted_ER | 0.5140 |
| predicted_ERA | 3.8355 |
| predicted_H | 0.9990 |
| predicted_HR | 0.2030 |
| predicted_IP | 1.1000 |
| predicted_SO | 1.3750 |
| predicted_WHIP | 1.0046 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.2130 | 0.1104 | model_form_blend |
| predicted_ER | 0.0000 | 0.5140 | 0.2663 | model_form_blend |
| predicted_ERA | - | 3.8355 | 3.8355 | form_only |
| predicted_H | 1.0000 | 0.9990 | 0.9995 | model_form_blend |
| predicted_HR | 0.0000 | 0.2030 | 0.1052 | model_form_blend |
| predicted_IP | 1.0000 | 1.1000 | 1.2000 | model_form_blend |
| predicted_SO | 1.0000 | 1.3750 | 1.1943 | model_form_blend |
| predicted_WHIP | - | 1.0046 | 1.0046 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 50 |
| Season rows before report date | 50 |
| Report year | 2026 |
| Profile rows used | 50 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.0 |
| H | 1 |
| R | 0 |
| ER | 0 |
| BB | 0 |
| SO | 0 |
| HR | 0 |
| BF | 4 |
| Pitches | 13 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 11 |
| Pitching_ER | 0 |
| Pitching_ERA | 2.45 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 3 |
| Pitching_H | 2 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 3.0 |
| Pitching_Pitches | 47 |
| Pitching_R | 0 |
| Pitching_SO | 4 |
| Pitching_Strikes | 30 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 1 |
| allPositionsPlayed | P |
| gameID | 20261003_ATL@LAD |
| game_type | full |
| mlbID | 689266 |
| playerID | 689266 |
| playerName | Dylan Dodd |
| pos | P |
| started | True |
| startingPosition | P |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-03 |
| sl_k_percent | 27.3 |
| sl_bb_percent | 7.2 |
| sl_woba | 0.26 |
| sl_xwoba | 0.273 |
| sl_sweet_spot_percent | 37.9 |
| sl_barrel_batted_rate | 8.9 |
| sl_hard_hit_percent | 37.1 |
| sl_whiff_percent | 29.5 |
| sl_swing_percent | 54.4 |
| sl_avg_best_speed | 80.094113934 |
| sl_avg_hyper_speed | 93.49856377 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.171 | 0.000 | -0.171 | 0.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.114 | 0.000 | -0.114 | 0.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.714 | 0.000 | 0.286 | 1.000 |
| predicted_IP | 1.000 | 1.000 | 1.000 | Pitching_InningsPitched | 0.966 | 1.000 | 0.034 | 0.000 |
| predicted_SO | 0.000 | 0.000 | 0.000 | Pitching_SO | 0.771 | 1.000 | -0.771 | -1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_rate_projection |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 2 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 1 |
| Better Metrics | 0 |
| Worse Metrics | 2 |
| Biggest Boost | predicted_H: 0.0000 -> 1.0000 (boost 1.0000, worse) |
| Biggest Deboost | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_rate_projection | 0 | 0 | 0 | 0 | 0 | - | - | Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty |
| 2 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 3 | team_form_adjustment | 0 | 0 | 0 | 0 | 0 | - | - | Club form: innings, run prevention and strikeout factors |
| 4 | savant_pitcher_quality | 0 | 0 | 0 | 0 | 0 | - | - | Statcast pitch quality: strikeout, walk, home-run and run-prevention factors |
| 5 | opposing_lineup_context | 0 | 0 | 0 | 0 | 0 | - | - | The nine hitters he faces: batter quality, weighted by plate appearances |
| 6 | kpi_run_environment | 0 | 0 | 0 | 0 | 0 | - | - | KPI blend published; the staff line follows the published score, not a KPI rescale |
| 7 | play_by_play_realization | 2 | 1 | 1 | 0 | 2 | predicted_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 |
| 8 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
| Metric | Value | Delta vs Prev Step |
|---|
Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 0.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 1.000 | - |
Club form: innings, run prevention and strikeout factors
| Metric | Value | Delta vs Prev Step |
|---|
Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
| Metric | Value | Delta vs Prev Step |
|---|
The nine hitters he faces: batter quality, weighted by plate appearances
| Metric | Value | Delta vs Prev Step |
|---|
KPI blend published; the staff line follows the published score, not a KPI rescale
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| BB | 0.000 | - |
| BF | 4.000 | - |
| ER | 0.000 | - |
| H | 1.000 | - |
| HR | 0.000 | - |
| IP | 1.000 | - |
| Pitches | 11.000 | - |
| R | 0.000 | - |
| SO | 0.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 5.000 | 2.000 | 6.000 | 1.000 | 1.000 | 0.000 | 3.6000 | 1.4000 | 0.4000 | 1.2000 | 0.2000 | 0.2000 | 0.0000 |
| last_10 | 0.35 | 10 | 10.100 | 2.000 | 9.000 | 1.000 | 5.000 | 0.000 | 1.7419 | 0.9677 | 0.1935 | 0.8710 | 0.0968 | 0.4839 | 0.0000 |
| season | 0.20 | 35 | 35.200 | 4.000 | 25.000 | 6.000 | 27.000 | 1.000 | 1.0093 | 0.8692 | 0.1121 | 0.7009 | 0.1682 | 0.7570 | 0.0280 |
| Metric | Value |
|---|---|
| predicted_BB | 0.2480 |
| predicted_ER | 0.3680 |
| predicted_ERA | 3.3153 |
| predicted_H | 0.9850 |
| predicted_HR | 0.0630 |
| predicted_IP | 1.0000 |
| predicted_SO | 0.6220 |
| predicted_WHIP | 1.2325 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.2480 | 0.1188 | model_form_blend |
| predicted_ER | 0.0000 | 0.3680 | 0.1763 | model_form_blend |
| predicted_ERA | - | 3.3153 | 3.3153 | form_only |
| predicted_H | 0.0000 | 0.9850 | 0.4720 | model_form_blend |
| predicted_HR | 0.0000 | 0.0630 | 0.0302 | model_form_blend |
| predicted_IP | 1.0000 | 1.0000 | 1.0000 | model_form_blend |
| predicted_SO | 1.0000 | 0.6220 | 0.8189 | model_form_blend |
| predicted_WHIP | - | 1.2325 | 1.2325 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 35 |
| Season rows before report date | 35 |
| Report year | 2026 |
| Profile rows used | 35 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.0 |
| H | 1 |
| R | 0 |
| ER | 0 |
| BB | 0 |
| SO | 0 |
| HR | 0 |
| BF | 4 |
| Pitches | 11 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 3 |
| Pitching_ER | 0 |
| Pitching_ERA | 0.00 |
| Pitching_Flyouts | 2 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 2 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.0 |
| Pitching_Pitches | 15 |
| Pitching_R | 0 |
| Pitching_SO | 1 |
| Pitching_Strikes | 9 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | H |
| Pitching_pitchingOrder | 4 |
| allPositionsPlayed | P |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 663158 |
| playerID | 663158 |
| playerName | Robert Suarez |
| pos | P |
| started | False |
| startingPosition | P |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-04 |
| sl_k_percent | 20.0 |
| sl_bb_percent | 4.6 |
| sl_woba | 0.221 |
| sl_xwoba | 0.283 |
| sl_sweet_spot_percent | 34.0 |
| sl_barrel_batted_rate | 3.1 |
| sl_hard_hit_percent | 33.0 |
| sl_whiff_percent | 23.1 |
| sl_swing_percent | 54.2 |
| sl_avg_best_speed | 72.217095 |
| sl_avg_hyper_speed | 92.706857579 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.243 | 1.000 | -0.243 | -1.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.338 | 0.000 | -0.338 | 0.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.689 | 1.000 | 0.311 | 0.000 |
| predicted_IP | 2.000 | 2.000 | 2.000 | Pitching_InningsPitched | 0.811 | 0.200 | 1.189 | 1.800 |
| predicted_SO | 2.000 | 2.000 | 2.000 | Pitching_SO | 1.081 | 1.000 | 0.919 | 1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_rate_projection |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 3 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 2 |
| Better Metrics | 3 |
| Worse Metrics | 0 |
| Biggest Boost | predicted_IP: 0.6667 -> 2.0000 (boost 1.3333, better) |
| Biggest Deboost | predicted_ER: 1.0000 -> 0.0000 (deboost -1.0000, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_rate_projection | 0 | 0 | 0 | 0 | 0 | - | - | Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty |
| 2 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 3 | team_form_adjustment | 0 | 0 | 0 | 0 | 0 | - | - | Club form: innings, run prevention and strikeout factors |
| 4 | savant_pitcher_quality | 0 | 0 | 0 | 0 | 0 | - | - | Statcast pitch quality: strikeout, walk, home-run and run-prevention factors |
| 5 | opposing_lineup_context | 0 | 0 | 0 | 0 | 0 | - | - | The nine hitters he faces: batter quality, weighted by plate appearances |
| 6 | kpi_run_environment | 0 | 0 | 0 | 0 | 0 | - | - | KPI blend published; the staff line follows the published score, not a KPI rescale |
| 7 | pitcher_quality_run_redistribution | 2 | 1 | 1 | 0 | 2 | predicted_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. |
| 8 | play_by_play_realization | 3 | 1 | 2 | 3 | 0 | predicted_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 |
| 9 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
| Metric | Value | Delta vs Prev Step |
|---|
Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 1.000 | - |
| predicted_H | 2.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 0.667 | - |
| predicted_SO | 2.000 | - |
Club form: innings, run prevention and strikeout factors
| Metric | Value | Delta vs Prev Step |
|---|
Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
| Metric | Value | Delta vs Prev Step |
|---|
The nine hitters he faces: batter quality, weighted by plate appearances
| Metric | Value | Delta vs Prev Step |
|---|
KPI blend published; the staff line follows the published score, not a KPI rescale
| Metric | Value | Delta vs Prev Step |
|---|
Runs moved off a protected strong starter and assigned to bullpen exposure to keep team totals coherent.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | 0.000 |
| predicted_ER | 2.000 | 1.000 |
| predicted_H | 2.000 | 0.000 |
| predicted_HR | 0.000 | 0.000 |
| predicted_IP | 0.200 | -0.467 |
| predicted_SO | 2.000 | 0.000 |
Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| BB | 0.000 | - |
| BF | 7.000 | - |
| ER | 0.000 | - |
| H | 1.000 | - |
| HR | 0.000 | - |
| IP | 2.000 | - |
| Pitches | 30.000 | - |
| R | 1.000 | - |
| SO | 2.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 4.100 | 2.000 | 4.000 | 1.000 | 4.000 | 2.000 | 4.1538 | 1.1538 | 0.4615 | 0.9231 | 0.2308 | 0.9231 | 0.4615 |
| last_10 | 0.35 | 10 | 8.200 | 8.000 | 13.000 | 3.000 | 6.000 | 2.000 | 8.3077 | 1.8462 | 0.9231 | 1.5000 | 0.3462 | 0.6923 | 0.2308 |
| season | 0.20 | 73 | 69.100 | 23.000 | 48.000 | 17.000 | 80.000 | 5.000 | 2.9856 | 0.9375 | 0.3317 | 0.6923 | 0.2452 | 1.1539 | 0.0721 |
| Metric | Value |
|---|---|
| predicted_BB | 0.2760 |
| predicted_ER | 0.5260 |
| predicted_ERA | 5.1781 |
| predicted_H | 0.9630 |
| predicted_HR | 0.2400 |
| predicted_IP | 1.0000 |
| predicted_SO | 0.8230 |
| predicted_WHIP | 1.3560 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.2760 | 0.1492 | model_form_blend |
| predicted_ER | 1.0000 | 0.5260 | 0.7437 | model_form_blend |
| predicted_ERA | - | 5.1781 | 5.1781 | form_only |
| predicted_H | 2.0000 | 0.9630 | 1.4393 | model_form_blend |
| predicted_HR | 0.0000 | 0.2400 | 0.1298 | model_form_blend |
| predicted_IP | 0.2000 | 1.0000 | 1.0000 | model_form_blend |
| predicted_SO | 2.0000 | 0.8230 | 1.3636 | model_form_blend |
| predicted_WHIP | - | 1.3560 | 1.3560 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 74 |
| Season rows before report date | 74 |
| Report year | 2026 |
| Profile rows used | 73 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 2.0 |
| H | 1 |
| R | 1 |
| ER | 0 |
| BB | 0 |
| SO | 2 |
| HR | 0 |
| BF | 7 |
| Pitches | 30 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 1 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 4 |
| Pitching_ER | 0 |
| Pitching_ERA | 7.71 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 1 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 2 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.2 |
| Pitching_Pitches | 14 |
| Pitching_R | 0 |
| Pitching_SO | 1 |
| Pitching_Strikes | 7 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | W |
| Pitching_pitchingOrder | 3 |
| allPositionsPlayed | P |
| gameID | 20261004_ATL@LAD |
| game_type | full |
| mlbID | 669276 |
| playerID | 669276 |
| playerName | Dylan Lee |
| pos | P |
| started | False |
| startingPosition | P |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-04 |
| sl_k_percent | 29.4 |
| sl_bb_percent | 6.5 |
| sl_woba | 0.248 |
| sl_xwoba | 0.252 |
| sl_sweet_spot_percent | 35.7 |
| sl_barrel_batted_rate | 5.4 |
| sl_hard_hit_percent | 32.7 |
| sl_whiff_percent | 35.7 |
| sl_swing_percent | 52.7 |
| sl_avg_best_speed | 77.001041951 |
| sl_avg_hyper_speed | 93.192195092 |
| Layer | Score | Winner | Confidence | Source or usage | Synced or matches |
|---|---|---|---|---|---|
| Shipped prediction | MIL 4 - 5 SD | SD | 0.566 | enhanced_prediction.pre_simulation_target | True |
| Simulation draw | MIL 4 - 5 SD | SD | - | organic_simulation_realized_target | True |
The shipped score is reconciled to the final simulation score. The original model target remains visible as the pre-simulation audit layer.
This table distinguishes newly generated artifacts from older files. Missing trace data is shown as legacy/unavailable, never inferred.
| Priority | Change | Runtime status | Evidence |
|---|---|---|---|
| P1 | Empirical confidence blend | applied | raw=0.7212; empirical=0.5714; weight=0.5000; final=0.6463 |
| P1 | H2H margin as base feature | available | home net=7; abs=7; home delta=0.0404; away delta=-0.0404 |
| P2 | Wider score distribution | implemented_above_requested_1.4x | variance multiplier=2.2500; floor=2.7500 |
| P2 | Simulation flip control | diagnostic_only_unless_independently_supported | candidate=False; trusted=False; published flip=False |
| P3 | Season edge + recent form | implemented | window=10; season edge=-1.1790; recent edge=0.1240; blended=- |
| P3 | Continuous calibration audit | trace emitted | Checked by CONFIDENCE_CALIBRATION_APPLIED and bucket_calibration_error in learning reports. |
| Process Layer | What It Does | Stored Field | Observed Value |
|---|---|---|---|
| 1. Historical model | Starts from trained game model output. | score_evolution.steps[historical_ml] | - |
| 2. Variance layer | Applies bounded game variance before enhanced corrections. | score_evolution.steps[variance_applied] | - |
| 3. Recent/team form | Uses latest team form, recent scoring, prevention, and streak state. | enhanced_prediction_analysis.recent_form | True |
| 4. Season quality | Uses season run differential and record quality guardrails. | season_run_differential_adjustment, season_quality_guardrail | True |
| 5. Savant hitters | Applies lineup-level Statcast xwOBA, xBA, xSLG, barrel, hard-hit, sweet-spot, EV, launch-angle, whiff, K and BB quality. | savant_batter_quality_adjustment | True |
| 6. Savant pitchers | Applies starter run prevention, strikeout, walk, HR and regression factors from xwOBA, wOBA, contact quality and whiff/command. | savant_pitcher_quality_adjustment | True |
| 7. Low-score analysis | Controls unrealistic totals and preserves the pre-sync low-score expected total. | low_score_analysis | 6.6000 |
| 8. Probability/governors | Applies win probability calibration, matchup guardrails, margin governor and confidence governor. | win_probability_calibration, margin_governor, confidence_governor | 0.5664 |
| 9. Simulation reconciliation | Reconciles final shipped score with the simulation box score while retaining the pre-simulation target. | simulation_reconciliation | organic_simulation_realized_target |
| 10. Score evolution rendered | 8 stored score steps are rendered below. | game.score_evolution.steps | true |
| Step | Layer | Away Runs | Home Runs | Confidence | Description |
|---|---|---|---|---|---|
| 1 | historical_ml | 3.531 | 4.700 | - | Base ML historical model prediction |
| 2 | variance_applied | 4 | 5 | - | Deterministic baseline target (variance factor 1.0) |
| 3 | enhanced_prediction | 4 | 5 | 0.5664 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run) |
| 4 | kpi_layer | 4 | 5 | - | Savant KPI blend applied to the model target |
| 5 | embedded_savant_run_environment | 4 | 5 | - | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| 6 | fundamental_edge_target_review | 4 | 5 | - | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| 7 | capped_target | 4 | 5 | - | Capped at max 12 realistic runs |
| 8 | simulation_result | 4 | 5 | - | Final inning-by-inning simulation result |
{
"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"
}{
"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
}{
"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"
}{
"method": "h2h_net_margin_monotonic_v1",
"available": true,
"sample_size": 5,
"sample_weight": 0.0577,
"home_net_margin": 7.0,
"absolute_net_margin": 7.0,
"home_average_margin": 1.4,
"home_run_delta": 0.0404,
"away_run_delta": -0.0404,
"evidence": [
{
"game_id": null,
"home_margin": 1.0
},
{
"game_id": null,
"home_margin": 9.0
},
{
"game_id": null,
"home_margin": 1.0
},
{
"game_id": null,
"home_margin": -6.0
},
{
"game_id": null,
"home_margin": 2.0
}
],
"adaptive_parameters": {
"h2h.history_limit": 5,
"h2h.maximum_weight": 0.15,
"h2h.prior_games": 8.0,
"h2h.maximum_total_shift": 0.65
}
}{
"applied": true,
"home": {
"team": "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
}
}{
"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"
}{
"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
}
}{
"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
}
}
}{
"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
}
}{
"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"
}
}{
"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"
}
}{
"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"
}
}
}Source: data/all_players_stats.csv embedded Savant hitter features. It adjusts team offense through expected production and contact quality, then records coverage so missing hitters are visible.
| Team | Applied | Offense Factor | Raw Avg Factor | Coverage Weight | Covered | Missing |
|---|---|---|---|---|---|---|
| Away MIL | True | 1.0370 | 1.0370 | 1 | 9 | 0 |
| Home SD | True | 1.0244 | 1.0244 | 1 | 9 | 0 |
| Pos | Player | ESPN Rank | Off Factor | Quality | Regression | xwOBA | xBA | xSLG | Barrel% | HardHit% | EV | LA | Whiff% | K% | BB% | Regression Edge |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| LF | Jackson Chourio | - | 1.0702 | 0.9355 | neutral | 0.3440 | 0.2650 | 0.4750 | 12.30 | 47 | 91.60 | 11.80 | 25.10 | 23.40 | 8.20 | -0.4857 |
| 1B | Jake Bauers | - | 1.0987 | 1.3163 | neutral | 0.3710 | 0.2530 | 0.4670 | 14 | 51.90 | 92.10 | 12.10 | 29.80 | 27 | 16.30 | -0.2857 |
| C | William Contreras | - | 1.0555 | 0.7396 | neutral | 0.3340 | 0.2610 | 0.4410 | 8.50 | 44.10 | 90.30 | 13.20 | 20.70 | 14.70 | 9.50 | 0.1143 |
| 2B | Brice Turang | - | 1.0512 | 0.6822 | neutral | 0.3440 | 0.2550 | 0.4280 | 7.70 | 41.60 | 90.30 | 8.80 | 23.10 | 25.10 | 13.20 | -0.4000 |
| DH | Christian Yelich | - | 1.0168 | 0.2241 | neutral | 0.3080 | 0.2300 | 0.3850 | 9.60 | 42.90 | 88.90 | 4 | 29.60 | 27 | 9.80 | 0.0857 |
| CF | Garrett Mitchell | - | 1.0836 | 1.1148 | neutral | 0.3530 | 0.2680 | 0.4470 | 11.70 | 52.70 | 93.20 | 2.20 | 35.80 | 31.50 | 11.30 | 0.3714 |
| SS | Cooper Pratt | - | 1.0048 | 0.0641 | neutral | 0.3150 | 0.2660 | 0.3620 | 3.20 | 27.40 | 87 | 9.10 | 21.80 | 18 | 9.80 | -0.1429 |
| RF | Sal Frelick | - | 0.9660 | -0.4529 | neutral | 0.2810 | 0.2410 | 0.3240 | 2.30 | 26.80 | 85.70 | 9.80 | 10.10 | 9.90 | 8.10 | 0.1714 |
| 3B | Joey Ortiz | - | 0.9858 | -0.1888 | neutral | 0.2970 | 0.2430 | 0.3460 | 4 | 37.60 | 89.20 | 6.40 | 19.90 | 19.80 | 8.40 | -0.6857 |
| Pos | Player | ESPN Rank | Off Factor | Quality | Regression | xwOBA | xBA | xSLG | Barrel% | HardHit% | EV | LA | Whiff% | K% | BB% | Regression Edge |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| RF | Fernando Tatis Jr. | - | 1.1212 | 1.6157 | neutral | 0.3790 | 0.2960 | 0.5000 | 12.70 | 53.90 | 92.90 | 5.30 | 25.90 | 18.50 | 9.10 | 0.6000 |
| CF | Jackson Merrill | - | 1.0922 | 1.2295 | neutral | 0.3470 | 0.2700 | 0.4910 | 12.40 | 48.70 | 91.50 | 14.30 | 27.60 | 24.10 | 6.20 | 0.7714 |
| 3B | Manny Machado | - | 1.0494 | 0.6585 | neutral | 0.3280 | 0.2430 | 0.4200 | 9.70 | 43.60 | 90.10 | 14.50 | 25.30 | 21.30 | 11.20 | 0.5143 |
| 1B | Ty France | - | 1.0355 | 0.4740 | negative_batter_regression | 0.3270 | 0.2480 | 0.4210 | 9.10 | 47.40 | 91.50 | 14.60 | 28.10 | 21.60 | 7.40 | -1.3143 |
| C | Ethan Salas | - | 0.9573 | -0.5694 | negative_batter_regression | 0.2270 | 0.1880 | 0.3160 | 3.30 | 33.30 | 90.10 | 25.70 | 19.40 | 22.50 | 2.50 | -2 |
| SS | Xander Bogaerts | - | 1.0303 | 0.4040 | neutral | 0.3250 | 0.2480 | 0.3760 | 5.50 | 42.30 | 89.60 | 6.70 | 23.10 | 18 | 12.70 | 0.5429 |
| LF | Dustin Harris | - | 0.9964 | -0.0484 | neutral | 0.3140 | 0.2780 | 0.3600 | 1.70 | 19.50 | 85.20 | 15.60 | 19.30 | 13.20 | 7.20 | -0.3429 |
| DH | Samad Taylor | - | 0.9823 | -0.2355 | negative_batter_regression | 0.3090 | 0.2560 | 0.3280 | 3.60 | 25.20 | 85.90 | 9 | 25.20 | 25.70 | 10.30 | -1.3429 |
| 2B | Jake Cronenworth | - | 0.9549 | -0.6015 | neutral | 0.2750 | 0.2130 | 0.3080 | 3.90 | 29.70 | 87.20 | 11.40 | 21.30 | 22.80 | 8.90 | -0.3429 |
{
"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"
}Source: data/all_players_stats.csv embedded Savant pitcher and movement features. Starter quality modifies opposing run scoring and pitcher strikeout/walk/homer expectations.
| Team | Pitcher | Available | ESPN Rank | Quality | Sample Wt | Run Prev | K Factor | BB Factor | HR Factor | Regression | xwOBA | wOBA | K% | BB% | Whiff% | Barrel% | HardHit% |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Away MIL | Dustin May | True | - | -0.1720 | 1 | 1.0146 | 0.9937 | 0.9780 | 1.0567 | neutral | 0.3230 | 0.3170 | 23.20 | 8.10 | 23 | 7.80 | 44.30 |
| Home SD | Nick Pivetta | True | - | 0.1561 | 0.4500 | 0.9867 | 1.0141 | 0.9685 | 1.0105 | neutral | 0.2770 | 0.2490 | 30 | 5.70 | 22.80 | 10.10 | 38.20 |
| Team | Pitcher | Movement Available | Primary Pitch | Pitches | Velo | Spin | Axis | HB | IVB | Drop | Rel X | Rel Z | Extension | Arm Angle | Movement Score |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Away MIL | Dustin May | True | None | 79 | 92.67 | 2537 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.1569 |
| Home SD | Nick Pivetta | True | None | 59 | 89.21 | 2437 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | -0.0365 |
| Run Factor | Value |
|---|---|
| away_runs_vs_home_pitcher | 0.9976 |
| home_runs_vs_away_pitcher | 1.0035 |
| home_pitcher_starter_only_factor | 0.9940 |
| 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 |
{
"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 | Last-10 W-L | Win % | R/G | RA/G | Run Diff | Streak | Offense | Defense |
|---|---|---|---|---|---|---|---|---|
| Away MIL | 8-2 | 0.800 | 4.40 | 3 | 14 | 5W | average | strong |
| Home SD | 8-2 | 0.800 | 6.30 | 4.50 | 18 | 2W | hot | average |
| Team | Record | Win % | Run Diff | RD/Game | Available |
|---|---|---|---|---|---|
| Away MIL | 103-59 | 0.636 | 214 | 1.321 | True |
| Home SD | 91-71 | 0.562 | 41 | 0.253 | True |
| Signal | - | - | -1.068 | -0.723 | applied=True |
| Date | Matchup | Score | Winner | Margin | Type |
|---|---|---|---|---|---|
| 2026-08-12 | MIL @ SD | 3 - 4 | SD | 1 | close |
| 2026-08-11 | MIL @ SD | 2 - 11 | SD | 9 | blowout |
| 2026-08-10 | MIL @ SD | 2 - 3 | SD | 1 | close |
| 2026-05-14 | SD @ MIL | 1 - 7 | MIL | 6 | blowout |
| 2026-05-13 | SD @ MIL | 3 - 1 | SD | 2 | close |
| Layer | AB | H | R | HR | RBI | BB | SO |
|---|---|---|---|---|---|---|---|
| Game target MIL | - | - | 4 | - | - | - | - |
| Game target SD | - | - | 5 | - | - | - | - |
| Player finalized MIL | 36 | 8 | 4 | 1 | 4 | 3 | 5 |
| Player finalized SD | 34 | 10 | 5 | 0 | 5 | 2 | 7 |
| Player model fractional MIL | 33.38 | 8.10 | 4.95 | 0.98 | 5.00 | 3.53 | 8.72 |
| Player model fractional SD | 32.91 | 8.56 | 4.34 | 1.00 | 4.13 | 2.89 | 7.51 |
| Simulation box MIL | 36 | 8 | 4 | 1 | 4 | 3 | 5 |
| Simulation box SD | 34 | 10 | 5 | 0 | 5 | 2 | 7 |
If player finalized rows and game target disagree, the report now exposes that gap instead of hiding it. Fractional model rows show the unrounded prop layer before box-score realization.
| Team | Role | Pitcher | Pre IP | Pre ER | Pre SO | Pre H | Pre BB | Weighted ERA | Weighted WHIP | Box Sync |
|---|---|---|---|---|---|---|---|---|---|---|
| Away MIL | Starter | Dustin May | 4 | 5 | 4 | 8 | 2 | 5.00 | 1.35 | True |
| Away MIL | Long Reliever | JoJo Romero | 1 | 0 | 1 | 1 | 0 | 2.74 | 0.97 | True |
| Away MIL | Middle Reliever (High Leverage) | Antonio Senzatela | 3 | 0 | 2 | 1 | 0 | 3.23 | 1.55 | True |
| Home SD | Starter | Nick Pivetta | 4 | 3 | 2 | 4 | 1 | 3.00 | 1.14 | True |
| Home SD | Middle Reliever (High Leverage) | Bradgley Rodriguez | 1.10 | 0 | 1 | 2 | 1 | 1.52 | 0.94 | True |
| Home SD | Middle Reliever (High Leverage) | Adrian Morejon | 1.10 | 1 | 1 | 1 | 0 | 2.95 | 1.14 | True |
| Home SD | Setup Man | Jason Adam | 1 | 0 | 1 | 0 | 1 | 4.06 | 1.14 | True |
| Home SD | Closer | Mason Miller | 1.10 | 0 | 0 | 1 | 0 | 6.11 | 1.59 | True |
| Side | Team | Role | Pos | Player | Dominant | Changed | Boosted | Deboosted | Better | Worse | Largest Metric | Largest Delta | Direction | Effect |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| home | SD | pitcher | Starter | Nick Pivetta | worse | 4 | 2 | 2 | 0 | 4 | predicted_SO | -5.0000 | deboost | worse |
| away | MIL | pitcher | Starter | Dustin May | worse | 5 | 3 | 2 | 2 | 3 | predicted_H | 4.0000 | boost | worse |
| away | MIL | pitcher | Middle Reliever (High Leverage) | Antonio Senzatela | better | 5 | 2 | 3 | 5 | 0 | predicted_IP | 2.9000 | boost | better |
| away | MIL | batter | SS | Cooper Pratt | worse | 10 | 3 | 7 | 2 | 8 | predicted_SO | 2.3330 | boost | worse |
| home | SD | pitcher | Middle Reliever (High Leverage) | Adrian Morejon | better | 4 | 1 | 3 | 3 | 1 | predicted_BB | -2.0000 | deboost | better |
| home | SD | batter | 3B | Manny Machado | worse | 12 | 3 | 9 | 3 | 8 | predicted_AB | -1.7500 | deboost | worse |
| away | MIL | batter | CF | Garrett Mitchell | better | 9 | 4 | 5 | 5 | 4 | predicted_RBI | 1.6800 | boost | better |
| home | SD | batter | LF | Dustin Harris | boosted | 10 | 6 | 4 | 5 | 5 | predicted_RBI | 1.5800 | boost | better |
| home | SD | batter | C | Ethan Salas | worse | 11 | 4 | 7 | 3 | 8 | predicted_AB | 1.5000 | boost | better |
| away | MIL | batter | LF | Jackson Chourio | worse | 12 | 1 | 11 | 0 | 12 | predicted_H | -1.4600 | deboost | worse |
| home | SD | batter | CF | Jackson Merrill | worse | 11 | 3 | 8 | 2 | 9 | predicted_AB | -1.4000 | deboost | worse |
| home | SD | batter | 1B | Ty France | worse | 12 | 2 | 10 | 1 | 11 | predicted_H | -1.1800 | deboost | worse |
| away | MIL | batter | 1B | Jake Bauers | better | 12 | 6 | 6 | 7 | 5 | predicted_H | 1.1500 | boost | better |
| away | MIL | batter | DH | Christian Yelich | worse | 10 | 3 | 7 | 4 | 6 | predicted_SO | -1.1380 | deboost | better |
| away | MIL | batter | 2B | Brice Turang | worse | 10 | 2 | 8 | 3 | 7 | predicted_SO | -1.1210 | deboost | better |
| away | MIL | batter | C | William Contreras | worse | 10 | 1 | 9 | 2 | 8 | predicted_H | -1.0700 | deboost | worse |
| home | SD | batter | DH | Samad Taylor | worse | 10 | 2 | 8 | 3 | 7 | predicted_H | 1.0200 | boost | better |
| away | MIL | pitcher | Long Reliever | JoJo Romero | worse | 1 | 1 | 0 | 0 | 1 | predicted_H | 1.0000 | boost | worse |
| home | SD | pitcher | Middle Reliever (High Leverage) | Bradgley Rodriguez | neutral | 4 | 2 | 2 | 2 | 2 | predicted_BB | -1.0000 | deboost | better |
| home | SD | pitcher | Setup Man | Jason Adam | better | 3 | 2 | 1 | 2 | 1 | predicted_BB | 1.0000 | boost | worse |
| home | SD | pitcher | Closer | Mason Miller | better | 4 | 1 | 3 | 3 | 1 | predicted_ER | -1.0000 | deboost | better |
| home | SD | batter | 2B | Jake Cronenworth | better | 12 | 6 | 6 | 7 | 5 | predicted_SO | -0.8930 | deboost | better |
| away | MIL | batter | RF | Sal Frelick | deboosted | 10 | 4 | 6 | 5 | 5 | predicted_AB | 0.8790 | boost | better |
| away | MIL | batter | 3B | Joey Ortiz | worse | 11 | 2 | 9 | 3 | 8 | predicted_AB | 0.8630 | boost | better |
| home | SD | batter | SS | Xander Bogaerts | worse | 11 | 3 | 8 | 4 | 7 | predicted_SO | -0.7130 | deboost | better |
| home | SD | batter | RF | Fernando Tatis Jr. | worse | 10 | 3 | 7 | 2 | 8 | predicted_RBI | 0.4500 | boost | better |
This table ranks players whose JSON evolution changed materially. Boost/deboost is numeric movement; better/worse is role-aware.
| Field | Value |
|---|---|
| Pitcher | Dustin May |
| Role | Starter |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | -0.1720 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.1569 |
| Avg Velo | 92.6662 |
| Avg Spin | 2536.6733 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 4 |
| Pre ER | 5 |
| Pre H | 8 |
| Pre BB | 2 |
| Pre SO | 4 |
| Season ERA | 4.6957 |
| Season WHIP | 1.3181 |
| Role Avg IP | 4.6990 |
| Recent Avg IP | 3.4000 |
| Last Start IP | 3 |
{
"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"
}{
"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"
}{
"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."
}{
"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
}
}{
"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"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | JoJo Romero |
| Role | Long Reliever |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | -0.1215 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | -0.0616 |
| Avg Velo | 88.7636 |
| Avg Spin | 2287.6413 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 1 |
| Pre ER | 0 |
| Pre H | 1 |
| Pre BB | 0 |
| Pre SO | 1 |
| Season ERA | 3.3158 |
| Season WHIP | 1.2281 |
| Role Avg IP | 1.0180 |
| Recent Avg IP | 1.2670 |
| Last Start IP | 0 |
{
"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"
}{
"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"
}{
"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."
}{
"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
}
}{
"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"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Antonio Senzatela |
| Role | Middle Reliever (High Leverage) |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.0023 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.2235 |
| Avg Velo | 93.8545 |
| Avg Spin | 2284.6976 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 3 |
| Pre ER | 0 |
| Pre H | 1 |
| Pre BB | 0 |
| Pre SO | 2 |
| Season ERA | 4.0135 |
| Season WHIP | 1.3784 |
| Role Avg IP | 1.2080 |
| Recent Avg IP | 0.8670 |
| Last Start IP | 0 |
{
"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"
}{
"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"
}{
"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."
}{
"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
}
}{
"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"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.213 | 0.000 | 0.000 | Hitting_2B | 0.252 | 0.000 | -0.252 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 5.070 | 5.000 | 5.000 | Hitting_AB | 4.273 | 4.000 | 0.727 | 1.000 |
| predicted_AVG | 0.288 | 0.000 | 0.000 | Hitting_AVG | 0.300 | 0.250 | -0.300 | -0.250 |
| predicted_BB | 0.370 | 0.000 | 0.000 | Hitting_BB | 0.379 | 0.000 | -0.379 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.041 | 0.000 | -0.041 | 0.000 |
| predicted_H | 1.460 | 0.000 | 0.000 | Hitting_H | 1.282 | 1.000 | -1.282 | -1.000 |
| predicted_HR | 0.220 | 0.000 | 0.000 | Hitting_HR | 0.201 | 0.000 | -0.201 | 0.000 |
| predicted_OBP | 0.398 | 0.000 | 0.000 | Hitting_OBP | 0.358 | 0.400 | -0.358 | -0.400 |
| predicted_R | 0.764 | 0.000 | 0.000 | Hitting_R | 0.821 | 0.000 | -0.821 | 0.000 |
| predicted_RBI | 1.130 | 0.000 | 0.000 | Hitting_RBI | 0.622 | 2.000 | -0.622 | -2.000 |
| predicted_SLG | 0.519 | 0.000 | 0.000 | Hitting_SLG | 0.500 | 0.250 | -0.500 | -0.250 |
| predicted_SO | 1.055 | 2.000 | 2.000 | Hitting_SO | 1.096 | 0.000 | 0.904 | 2.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 12 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 11 |
| Better Metrics | 0 |
| Worse Metrics | 12 |
| Biggest Boost | predicted_SO: 1.0550 -> 2.0000 (boost 0.9450, worse) |
| Biggest Deboost | predicted_H: 1.4600 -> 0.0000 (deboost -1.4600, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 5 | 1 | 4 | 2 | 3 | predicted_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. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 1 | 7 | 0 | 8 | predicted_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 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.8114 -> 1.0000 (boost 0.1886, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 5 | 4 | 1 | 3 | 2 | predicted_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 |
| 8 | lineup_integer_allocation | 8 | 2 | 6 | 3 | 5 | predicted_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 |
| 9 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 11 | play_by_play_realization | 6 | 2 | 4 | 1 | 5 | predicted_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 |
| 12 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 13 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.213 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 5.070 | - |
| predicted_AVG | 0.288 | - |
| predicted_BB | 0.370 | - |
| predicted_H | 1.460 | - |
| predicted_HR | 0.220 | - |
| predicted_OBP | 0.398 | - |
| predicted_R | 0.764 | - |
| predicted_RBI | 1.130 | - |
| predicted_SLG | 0.519 | - |
| predicted_SO | 1.055 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.172 | -0.041 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 4.515 | -0.555 |
| predicted_AVG | 0.308 | 0.020 |
| predicted_BB | 0.357 | -0.013 |
| predicted_H | 1.377 | -0.083 |
| predicted_HBP | 0.079 | - |
| predicted_HR | 0.212 | -0.008 |
| predicted_OBP | 0.399 | 0.001 |
| predicted_R | 0.787 | 0.023 |
| predicted_RBI | 1.027 | -0.103 |
| predicted_SLG | 0.522 | 0.003 |
| predicted_SO | 0.923 | -0.131 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.172 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 4.515 | 0.000 |
| predicted_AVG | 0.310 | 0.002 |
| predicted_BB | 0.361 | 0.004 |
| predicted_H | 1.400 | 0.023 |
| predicted_HBP | 0.079 | 0.000 |
| predicted_HR | 0.216 | 0.004 |
| predicted_OBP | 0.361 | -0.037 |
| predicted_R | 0.811 | 0.024 |
| predicted_RBI | 1.058 | 0.031 |
| predicted_SLG | 0.492 | -0.030 |
| predicted_SO | 0.913 | -0.011 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=5.07), rates preserved: AVG=0.266 HR/AB=0.043
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.165 | 0.165 |
| 3B | 0.007 | 0.007 |
| BB | 0.357 | 0.357 |
| H | 1.015 | 0.015 |
| HR | 0.176 | 0.176 |
| RBI | 0.558 | -0.442 |
| SO | 1.169 | 0.169 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.165 |
| 3B | 0.000 | -0.007 |
| AB | 4.000 | 0.000 |
| AVG | 0.249 | - |
| BB | 0.000 | -0.357 |
| H | 1.000 | -0.015 |
| HR | 1.000 | 0.824 |
| OBP | 0.315 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.442 |
| SLG | 0.422 | - |
| SO | 1.000 | -0.169 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.172 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 4.000 | -0.515 |
| predicted_AVG | 0.249 | -0.061 |
| predicted_BB | 0.000 | -0.361 |
| predicted_H | 1.000 | -0.400 |
| predicted_HR | 1.000 | 0.784 |
| predicted_OBP | 0.315 | -0.046 |
| predicted_R | 1.000 | 0.189 |
| predicted_RBI | 1.000 | -0.058 |
| predicted_SLG | 0.422 | -0.070 |
| predicted_SO | 1.000 | 0.087 |
KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.238 | -0.011 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 1.000 | 0.000 |
| OBP | 0.302 | -0.013 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SLG | 0.404 | -0.018 |
| SO | 1.000 | 0.000 |
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | -1.000 |
| PA | 5.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | -1.000 |
| SF | 0.000 | 0.000 |
| SO | 2.000 | 1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 2.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 17.000 | 8.000 | 0.000 | 0.000 | 1.000 | 8.000 | 5.000 | 1.000 | 0.000 | 0.4706 | 0.5263 | 0.6471 | 0.4706 | 0.0588 | 0.4706 | 0.0588 | 0.0000 |
| last_10 | 0.20 | 10 | - | 32.000 | 11.000 | 0.000 | 0.000 | 2.000 | 9.000 | 8.000 | 4.000 | 7.000 | 0.3438 | 0.4324 | 0.5312 | 0.3438 | 0.0625 | 0.2812 | 0.1250 | 0.2188 |
| season | 0.60 | 127 | - | 524.000 | 154.000 | 27.000 | 0.000 | 26.000 | 79.000 | 97.000 | 47.000 | 134.000 | 0.2939 | 0.3542 | 0.4943 | 0.2939 | 0.0496 | 0.1508 | 0.0897 | 0.2557 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1200 |
| predicted_3B | 0.0010 |
| predicted_AB | 3.7960 |
| predicted_AVG | 0.3347 |
| predicted_BB | 0.3400 |
| predicted_H | 1.2700 |
| predicted_HBP | 0.0790 |
| predicted_HR | 0.2010 |
| predicted_OBP | 0.3994 |
| predicted_R | 0.8180 |
| predicted_RBI | 0.8930 |
| predicted_SLG | 0.5261 |
| predicted_SO | 0.7530 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2130 | 0.1200 | 0.1725 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 5.0700 | 3.7960 | 4.5151 | model_form_blend |
| predicted_AVG | 0.2880 | 0.3347 | 0.3083 | model_form_blend |
| predicted_BB | 0.3700 | 0.3400 | 0.3569 | model_form_blend |
| predicted_H | 1.4600 | 1.2700 | 1.3773 | model_form_blend |
| predicted_HBP | - | 0.0790 | 0.0790 | form_only |
| predicted_HR | 0.2200 | 0.2010 | 0.2117 | model_form_blend |
| predicted_OBP | 0.3980 | 0.3994 | 0.3986 | model_form_blend |
| predicted_R | 0.7640 | 0.8180 | 0.7875 | model_form_blend |
| predicted_RBI | 1.1300 | 0.8930 | 1.0268 | model_form_blend |
| predicted_SLG | 0.5190 | 0.5261 | 0.5221 | model_form_blend |
| predicted_SO | 1.0550 | 0.7530 | 0.9235 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 543 |
| Season rows before report date | 543 |
| Report year | 2026 |
| Profile rows used | 127 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 2 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.25 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 1 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 2 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 1 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | LF |
| gameID | 20261004_SD@MIL |
| game_type | full |
| mlbID | 694192 |
| playerID | 694192 |
| playerName | Jackson Chourio |
| pos | LF |
| started | True |
| startingPosition | LF |
| team | MIL |
| teamID | 16 |
| game_date | 2026-10-04 |
| sl_k_percent | 23.4 |
| sl_bb_percent | 8.2 |
| sl_woba | 0.361 |
| sl_xwoba | 0.344 |
| sl_xba | 0.265 |
| sl_xslg | 0.475 |
| sl_sweet_spot_percent | 33.3 |
| sl_barrel_batted_rate | 12.3 |
| sl_hard_hit_percent | 47.0 |
| sl_exit_velocity_avg | 91.6 |
| sl_launch_angle_avg | 11.8 |
| sl_whiff_percent | 25.1 |
| sl_swing_percent | 47.8 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.143 | 0.000 | 0.000 | Hitting_2B | 0.142 | 0.000 | -0.142 | 0.000 |
| predicted_3B | 0.014 | 0.000 | 0.000 | Hitting_3B | 0.016 | 0.000 | -0.016 | 0.000 |
| predicted_AB | 3.440 | 4.000 | 4.000 | Hitting_AB | 3.510 | 4.000 | 0.490 | 0.000 |
| predicted_AVG | 0.247 | 0.500 | 0.500 | Hitting_AVG | 0.269 | 0.000 | 0.231 | 0.500 |
| predicted_BB | 0.636 | 0.000 | 0.000 | Hitting_BB | 0.736 | 0.000 | -0.736 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.035 | 0.000 | -0.035 | 0.000 |
| predicted_H | 0.850 | 2.000 | 2.000 | Hitting_H | 0.945 | 0.000 | 1.055 | 2.000 |
| predicted_HR | 0.150 | 1.000 | 1.000 | Hitting_HR | 0.202 | 0.000 | 0.798 | 1.000 |
| predicted_OBP | 0.345 | 0.600 | 0.600 | Hitting_OBP | 0.398 | 0.000 | 0.202 | 0.600 |
| predicted_R | 0.650 | 1.000 | 1.000 | Hitting_R | 0.703 | 0.000 | 0.297 | 1.000 |
| predicted_RBI | 0.490 | 1.000 | 1.000 | Hitting_RBI | 0.667 | 0.000 | 0.333 | 1.000 |
| predicted_SLG | 0.431 | 1.250 | 1.250 | Hitting_SLG | 0.492 | 0.000 | 0.758 | 1.250 |
| predicted_SO | 1.114 | 0.000 | 0.000 | Hitting_SO | 1.122 | 2.000 | -1.122 | -2.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 12 |
| Boosted Metrics | 6 |
| Deboosted Metrics | 6 |
| Better Metrics | 7 |
| Worse Metrics | 5 |
| Biggest Boost | predicted_H: 0.8500 -> 2.0000 (boost 1.1500, better) |
| Biggest Deboost | predicted_SO: 1.1140 -> 0.0000 (deboost -1.1140, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 1 | 2 | 0 | 3 | predicted_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. |
| 3 | team_form_snapshot | 1 | 1 | 0 | 1 | 0 | predicted_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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 4 | 4 | 5 | 3 | predicted_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 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.6339 -> 1.0000 (boost 0.3661, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 3 | 3 | 2 | 4 | predicted_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 |
| 8 | lineup_integer_allocation | 9 | 3 | 6 | 4 | 5 | predicted_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 |
| 9 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 11 | play_by_play_realization | 5 | 3 | 2 | 4 | 1 | predicted_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 |
| 12 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 13 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.143 | - |
| predicted_3B | 0.014 | - |
| predicted_AB | 3.440 | - |
| predicted_AVG | 0.247 | - |
| predicted_BB | 0.636 | - |
| predicted_H | 0.850 | - |
| predicted_HR | 0.150 | - |
| predicted_OBP | 0.345 | - |
| predicted_R | 0.650 | - |
| predicted_RBI | 0.490 | - |
| predicted_SLG | 0.431 | - |
| predicted_SO | 1.114 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.137 | -0.006 |
| predicted_3B | 0.012 | -0.002 |
| predicted_AB | 3.454 | 0.014 |
| predicted_AVG | 0.248 | 0.001 |
| predicted_BB | 0.575 | -0.061 |
| predicted_H | 0.857 | 0.007 |
| predicted_HBP | 0.078 | - |
| predicted_HR | 0.133 | -0.017 |
| predicted_OBP | 0.347 | 0.002 |
| predicted_R | 0.615 | -0.035 |
| predicted_RBI | 0.495 | 0.005 |
| predicted_SLG | 0.412 | -0.019 |
| predicted_SO | 1.172 | 0.058 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.137 | 0.000 |
| predicted_3B | 0.012 | 0.000 |
| predicted_AB | 3.454 | 0.000 |
| predicted_AVG | 0.252 | 0.004 |
| predicted_BB | 0.581 | 0.007 |
| predicted_H | 0.871 | 0.014 |
| predicted_HBP | 0.078 | 0.000 |
| predicted_HR | 0.135 | 0.003 |
| predicted_OBP | 0.360 | 0.013 |
| predicted_R | 0.634 | 0.019 |
| predicted_RBI | 0.510 | 0.015 |
| predicted_SLG | 0.416 | 0.004 |
| predicted_SO | 1.158 | -0.014 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.45), rates preserved: AVG=0.243 HR/AB=0.039
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 1.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.141 | 0.141 |
| 3B | 0.011 | 0.011 |
| BB | 0.598 | -0.402 |
| H | 0.821 | -0.179 |
| HR | 0.157 | 0.157 |
| RBI | 0.518 | -0.482 |
| SO | 1.181 | 0.181 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.141 |
| 3B | 0.000 | -0.011 |
| AB | 4.000 | 0.000 |
| AVG | 0.224 | - |
| BB | 1.000 | 0.402 |
| H | 1.000 | 0.179 |
| HR | 0.000 | -0.157 |
| OBP | 0.338 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.482 |
| SLG | 0.398 | - |
| SO | 1.000 | -0.181 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.137 |
| predicted_3B | 0.000 | -0.012 |
| predicted_AB | 4.000 | 0.546 |
| predicted_AVG | 0.224 | -0.028 |
| predicted_BB | 1.000 | 0.419 |
| predicted_H | 1.000 | 0.129 |
| predicted_HR | 0.000 | -0.135 |
| predicted_OBP | 0.338 | -0.022 |
| predicted_R | 1.000 | 0.366 |
| predicted_RBI | 1.000 | 0.490 |
| predicted_SLG | 0.398 | -0.018 |
| predicted_SO | 1.000 | -0.158 |
KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.215 | -0.009 |
| BB | 1.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.326 | -0.012 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SLG | 0.380 | -0.018 |
| SO | 1.000 | 0.000 |
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -1.000 |
| H | 2.000 | 1.000 |
| HBP | 1.000 | 1.000 |
| HR | 1.000 | 1.000 |
| PA | 5.000 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 2.000 | 0.000 |
| HBP | 1.000 | 0.000 |
| HR | 1.000 | 0.000 |
| PA | 5.000 | 0.000 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 18.000 | 4.000 | 0.000 | 0.000 | 0.000 | 2.000 | 2.000 | 1.000 | 7.000 | 0.2222 | 0.2857 | 0.2222 | 0.2222 | 0.0000 | 0.1111 | 0.0556 | 0.3889 |
| last_10 | 0.20 | 10 | - | 35.000 | 8.000 | 2.000 | 0.000 | 0.000 | 3.000 | 5.000 | 4.000 | 16.000 | 0.2286 | 0.3171 | 0.2857 | 0.2286 | 0.0000 | 0.0857 | 0.1143 | 0.4571 |
| season | 0.60 | 140 | - | 475.000 | 126.000 | 20.000 | 2.000 | 25.000 | 84.000 | 91.000 | 89.000 | 156.000 | 0.2653 | 0.3846 | 0.4737 | 0.2653 | 0.0526 | 0.1768 | 0.1874 | 0.3284 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1290 |
| predicted_3B | 0.0090 |
| predicted_AB | 3.4730 |
| predicted_AVG | 0.2493 |
| predicted_BB | 0.4950 |
| predicted_H | 0.8660 |
| predicted_HBP | 0.0780 |
| predicted_HR | 0.1100 |
| predicted_OBP | 0.3490 |
| predicted_R | 0.5700 |
| predicted_RBI | 0.5020 |
| predicted_SLG | 0.3869 |
| predicted_SO | 1.2470 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1430 | 0.1290 | 0.1369 | model_form_blend |
| predicted_3B | 0.0140 | 0.0090 | 0.0118 | model_form_blend |
| predicted_AB | 3.4400 | 3.4730 | 3.4544 | model_form_blend |
| predicted_AVG | 0.2470 | 0.2493 | 0.2480 | model_form_blend |
| predicted_BB | 0.6360 | 0.4950 | 0.5746 | model_form_blend |
| predicted_H | 0.8500 | 0.8660 | 0.8570 | model_form_blend |
| predicted_HBP | - | 0.0780 | 0.0780 | form_only |
| predicted_HR | 0.1500 | 0.1100 | 0.1326 | model_form_blend |
| predicted_OBP | 0.3450 | 0.3490 | 0.3467 | model_form_blend |
| predicted_R | 0.6500 | 0.5700 | 0.6152 | model_form_blend |
| predicted_RBI | 0.4900 | 0.5020 | 0.4952 | model_form_blend |
| predicted_SLG | 0.4310 | 0.3869 | 0.4118 | model_form_blend |
| predicted_SO | 1.1140 | 1.2470 | 1.1719 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 549 |
| Season rows before report date | 549 |
| Report year | 2026 |
| Profile rows used | 140 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 4 |
| H | 2 |
| 2B | 0 |
| 3B | 0 |
| HR | 1 |
| R | 1 |
| RBI | 1 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 1 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 2 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 3 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 1B |
| gameID | 20261004_SD@MIL |
| game_type | full |
| mlbID | 641343 |
| playerID | 641343 |
| playerName | Jake Bauers |
| pos | 1B |
| started | True |
| startingPosition | 1B |
| team | MIL |
| teamID | 16 |
| game_date | 2026-10-04 |
| sl_k_percent | 27.0 |
| sl_bb_percent | 16.3 |
| sl_woba | 0.381 |
| sl_xwoba | 0.371 |
| sl_xba | 0.253 |
| sl_xslg | 0.467 |
| sl_sweet_spot_percent | 38.6 |
| sl_barrel_batted_rate | 14.0 |
| sl_hard_hit_percent | 51.9 |
| sl_exit_velocity_avg | 92.1 |
| sl_launch_angle_avg | 12.1 |
| sl_whiff_percent | 29.8 |
| sl_swing_percent | 40.6 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.177 | 0.000 | 0.000 | Hitting_2B | 0.186 | 0.000 | -0.186 | 0.000 |
| predicted_3B | 0.007 | 0.000 | 0.000 | Hitting_3B | 0.008 | 0.000 | -0.008 | 0.000 |
| predicted_AB | 4.820 | 4.000 | 4.000 | Hitting_AB | 3.984 | 4.000 | 0.016 | 0.000 |
| predicted_AVG | 0.221 | 0.000 | 0.000 | Hitting_AVG | 0.274 | 0.000 | -0.274 | 0.000 |
| predicted_BB | 0.415 | 1.000 | 1.000 | Hitting_BB | 0.438 | 0.000 | 0.562 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.015 | 0.000 | -0.015 | 0.000 |
| predicted_H | 1.070 | 0.000 | 0.000 | Hitting_H | 1.092 | 0.000 | -1.092 | 0.000 |
| predicted_HR | 0.190 | 0.000 | 0.000 | Hitting_HR | 0.130 | 0.000 | -0.130 | 0.000 |
| predicted_OBP | 0.322 | 0.200 | 0.200 | Hitting_OBP | 0.345 | 0.000 | -0.145 | 0.200 |
| predicted_R | 0.558 | 0.000 | 0.000 | Hitting_R | 0.609 | 0.000 | -0.609 | 0.000 |
| predicted_RBI | 0.760 | 0.000 | 0.000 | Hitting_RBI | 0.678 | 0.000 | -0.678 | 0.000 |
| predicted_SLG | 0.428 | 0.000 | 0.000 | Hitting_SLG | 0.423 | 0.000 | -0.423 | 0.000 |
| predicted_SO | 0.639 | 0.000 | 0.000 | Hitting_SO | 0.642 | 1.000 | -0.642 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 9 |
| Better Metrics | 2 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_BB: 0.4150 -> 1.0000 (boost 0.5850, better) |
| Biggest Deboost | predicted_H: 1.0700 -> 0.0000 (deboost -1.0700, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 6 | 1 | 5 | 1 | 5 | predicted_AVG: 0.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. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 2 | 4 | 1 | 5 | predicted_SO: 0.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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=13.0, weight=0.121, BvP AVG=0.231) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5174 -> 1.0000 (boost 0.4826, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 3 | 3 | 4 | 2 | predicted_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 |
| 9 | lineup_integer_allocation | 8 | 3 | 5 | 2 | 6 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 12 | play_by_play_realization | 4 | 1 | 3 | 2 | 2 | predicted_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 |
| 13 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 14 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.177 | - |
| predicted_3B | 0.007 | - |
| predicted_AB | 4.820 | - |
| predicted_AVG | 0.221 | - |
| predicted_BB | 0.415 | - |
| predicted_H | 1.070 | - |
| predicted_HR | 0.190 | - |
| predicted_OBP | 0.322 | - |
| predicted_R | 0.558 | - |
| predicted_RBI | 0.760 | - |
| predicted_SLG | 0.428 | - |
| predicted_SO | 0.639 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.154 | -0.023 |
| predicted_3B | 0.006 | -0.001 |
| predicted_AB | 4.332 | -0.488 |
| predicted_AVG | 0.230 | 0.009 |
| predicted_BB | 0.437 | 0.022 |
| predicted_H | 0.994 | -0.076 |
| predicted_HBP | 0.016 | - |
| predicted_HR | 0.176 | -0.014 |
| predicted_OBP | 0.323 | 0.001 |
| predicted_R | 0.502 | -0.056 |
| predicted_RBI | 0.706 | -0.054 |
| predicted_SLG | 0.419 | -0.009 |
| predicted_SO | 0.628 | -0.011 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.154 | 0.000 |
| predicted_3B | 0.006 | 0.000 |
| predicted_AB | 4.332 | 0.000 |
| predicted_AVG | 0.233 | 0.003 |
| predicted_BB | 0.442 | 0.005 |
| predicted_H | 1.011 | 0.017 |
| predicted_HBP | 0.016 | 0.000 |
| predicted_HR | 0.180 | 0.004 |
| predicted_OBP | 0.304 | -0.019 |
| predicted_R | 0.517 | 0.015 |
| predicted_RBI | 0.728 | 0.021 |
| predicted_SLG | 0.396 | -0.023 |
| predicted_SO | 0.620 | -0.007 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.82), rates preserved: AVG=0.202 HR/AB=0.037
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=13.0, weight=0.121, BvP AVG=0.231)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.154 | 0.154 |
| 3B | 0.008 | 0.008 |
| BB | 0.379 | 0.379 |
| H | 0.888 | -0.112 |
| HR | 0.112 | 0.112 |
| RBI | 0.532 | -0.468 |
| SO | 0.812 | -0.188 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.154 |
| 3B | 0.000 | -0.008 |
| AB | 4.000 | 0.000 |
| AVG | 0.232 | - |
| BB | 0.000 | -0.379 |
| H | 1.000 | 0.112 |
| HR | 0.000 | -0.112 |
| OBP | 0.307 | - |
| R | 0.000 | -1.000 |
| RBI | 1.000 | 0.468 |
| SLG | 0.365 | - |
| SO | 1.000 | 0.188 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.154 |
| predicted_3B | 0.000 | -0.006 |
| predicted_AB | 4.000 | -0.332 |
| predicted_AVG | 0.232 | -0.001 |
| predicted_BB | 0.000 | -0.442 |
| predicted_H | 1.000 | -0.011 |
| predicted_HR | 0.000 | -0.180 |
| predicted_OBP | 0.307 | 0.003 |
| predicted_R | 0.000 | -0.517 |
| predicted_RBI | 1.000 | 0.272 |
| predicted_SLG | 0.365 | -0.031 |
| predicted_SO | 1.000 | 0.380 |
KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.222 | -0.010 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.295 | -0.012 |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SLG | 0.349 | -0.016 |
| SO | 1.000 | 0.000 |
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 1.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -1.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 17.000 | 3.000 | 0.000 | 0.000 | 1.000 | 2.000 | 1.000 | 3.000 | 2.000 | 0.1765 | 0.3000 | 0.3529 | 0.1765 | 0.0588 | 0.1177 | 0.1765 | 0.1177 |
| last_10 | 0.20 | 10 | - | 35.000 | 8.000 | 1.000 | 0.000 | 2.000 | 9.000 | 3.000 | 5.000 | 7.000 | 0.2286 | 0.3171 | 0.4286 | 0.2286 | 0.0571 | 0.2571 | 0.1429 | 0.2000 |
| season | 0.60 | 147 | - | 568.000 | 152.000 | 26.000 | 1.000 | 19.000 | 94.000 | 82.000 | 61.000 | 94.000 | 0.2676 | 0.3380 | 0.4173 | 0.2676 | 0.0335 | 0.1655 | 0.1074 | 0.1655 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1250 |
| predicted_3B | 0.0040 |
| predicted_AB | 3.7030 |
| predicted_AVG | 0.2419 |
| predicted_BB | 0.4650 |
| predicted_H | 0.8960 |
| predicted_HBP | 0.0160 |
| predicted_HR | 0.1590 |
| predicted_OBP | 0.3253 |
| predicted_R | 0.4300 |
| predicted_RBI | 0.6370 |
| predicted_SLG | 0.4067 |
| predicted_SO | 0.6130 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1770 | 0.1250 | 0.1543 | model_form_blend |
| predicted_3B | 0.0070 | 0.0040 | 0.0057 | model_form_blend |
| predicted_AB | 4.8200 | 3.7030 | 4.3319 | model_form_blend |
| predicted_AVG | 0.2210 | 0.2419 | 0.2301 | model_form_blend |
| predicted_BB | 0.4150 | 0.4650 | 0.4368 | model_form_blend |
| predicted_H | 1.0700 | 0.8960 | 0.9940 | model_form_blend |
| predicted_HBP | - | 0.0160 | 0.0160 | form_only |
| predicted_HR | 0.1900 | 0.1590 | 0.1765 | model_form_blend |
| predicted_OBP | 0.3220 | 0.3253 | 0.3234 | model_form_blend |
| predicted_R | 0.5580 | 0.4300 | 0.5021 | model_form_blend |
| predicted_RBI | 0.7600 | 0.6370 | 0.7063 | model_form_blend |
| predicted_SLG | 0.4280 | 0.4067 | 0.4187 | model_form_blend |
| predicted_SO | 0.6390 | 0.6130 | 0.6276 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 609 |
| Season rows before report date | 609 |
| Report year | 2026 |
| Profile rows used | 147 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 4 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | C |
| gameID | 20261004_SD@MIL |
| game_type | full |
| mlbID | 661388 |
| playerID | 661388 |
| playerName | William Contreras |
| pos | C |
| started | True |
| startingPosition | C |
| team | MIL |
| teamID | 16 |
| game_date | 2026-10-04 |
| sl_k_percent | 14.7 |
| sl_bb_percent | 9.5 |
| sl_woba | 0.33 |
| sl_xwoba | 0.334 |
| sl_xba | 0.261 |
| sl_xslg | 0.441 |
| sl_sweet_spot_percent | 33.3 |
| sl_barrel_batted_rate | 8.5 |
| sl_hard_hit_percent | 44.1 |
| sl_exit_velocity_avg | 90.3 |
| sl_launch_angle_avg | 13.2 |
| sl_whiff_percent | 20.7 |
| sl_swing_percent | 47.2 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.248 | 0.000 | 0.000 | Hitting_2B | 0.260 | 0.000 | -0.260 | 0.000 |
| predicted_3B | 0.020 | 0.000 | 0.000 | Hitting_3B | 0.028 | 0.000 | -0.028 | 0.000 |
| predicted_AB | 4.370 | 4.000 | 4.000 | Hitting_AB | 3.960 | 4.000 | 0.040 | 0.000 |
| predicted_AVG | 0.224 | 0.250 | 0.250 | Hitting_AVG | 0.277 | 0.000 | -0.027 | 0.250 |
| predicted_BB | 0.584 | 1.000 | 1.000 | Hitting_BB | 0.588 | 0.000 | 0.412 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.037 | 0.000 | -0.037 | 0.000 |
| predicted_H | 0.980 | 1.000 | 1.000 | Hitting_H | 1.096 | 0.000 | -0.096 | 1.000 |
| predicted_HR | 0.160 | 0.000 | 0.000 | Hitting_HR | 0.142 | 0.000 | -0.142 | 0.000 |
| predicted_OBP | 0.324 | 0.400 | 0.400 | Hitting_OBP | 0.370 | 0.000 | 0.030 | 0.400 |
| predicted_R | 0.685 | 1.000 | 1.000 | Hitting_R | 0.714 | 0.000 | 0.286 | 1.000 |
| predicted_RBI | 0.840 | 0.000 | 0.000 | Hitting_RBI | 0.735 | 0.000 | -0.735 | 0.000 |
| predicted_SB | - | 0.000 | 0.000 | BaseRunning_SB | 0.130 | 0.000 | -0.130 | 0.000 |
| predicted_SLG | 0.434 | 0.250 | 0.250 | Hitting_SLG | 0.464 | 0.000 | -0.214 | 0.250 |
| predicted_SO | 1.121 | 0.000 | 0.000 | Hitting_SO | 1.081 | 1.000 | -1.081 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 8 |
| Better Metrics | 3 |
| Worse Metrics | 7 |
| Biggest Boost | predicted_BB: 0.5840 -> 1.0000 (boost 0.4160, better) |
| Biggest Deboost | predicted_SO: 1.1210 -> 0.0000 (deboost -1.1210, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 5 | 3 | 2 | 3 | 2 | predicted_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. |
| 3 | team_form_snapshot | 1 | 0 | 1 | 0 | 1 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 1 | 5 | 2 | 4 | predicted_RBI: 0.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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.167) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.6878 -> 1.0000 (boost 0.3122, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 4 | 2 | 3 | 3 | predicted_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 |
| 9 | lineup_integer_allocation | 8 | 3 | 5 | 4 | 4 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 12 | play_by_play_realization | 2 | 0 | 2 | 1 | 1 | - | 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 |
| 13 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 14 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.248 | - |
| predicted_3B | 0.020 | - |
| predicted_AB | 4.370 | - |
| predicted_AVG | 0.224 | - |
| predicted_BB | 0.584 | - |
| predicted_H | 0.980 | - |
| predicted_HR | 0.160 | - |
| predicted_OBP | 0.324 | - |
| predicted_R | 0.685 | - |
| predicted_RBI | 0.840 | - |
| predicted_SLG | 0.434 | - |
| predicted_SO | 1.121 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.264 | 0.016 |
| predicted_3B | 0.017 | -0.003 |
| predicted_AB | 4.166 | -0.204 |
| predicted_AVG | 0.243 | 0.019 |
| predicted_BB | 0.531 | -0.052 |
| predicted_H | 1.009 | 0.029 |
| predicted_HBP | 0.005 | - |
| predicted_HR | 0.161 | 0.001 |
| predicted_OBP | 0.333 | 0.009 |
| predicted_R | 0.667 | -0.018 |
| predicted_RBI | 0.812 | -0.028 |
| predicted_SLG | 0.451 | 0.017 |
| predicted_SO | 1.119 | -0.002 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.264 | 0.000 |
| predicted_3B | 0.017 | 0.000 |
| predicted_AB | 4.166 | 0.000 |
| predicted_AVG | 0.246 | 0.003 |
| predicted_BB | 0.538 | 0.006 |
| predicted_H | 1.026 | 0.017 |
| predicted_HBP | 0.005 | 0.000 |
| predicted_HR | 0.165 | 0.003 |
| predicted_OBP | 0.333 | -0.001 |
| predicted_R | 0.688 | 0.020 |
| predicted_RBI | 0.837 | 0.025 |
| predicted_SLG | 0.436 | -0.015 |
| predicted_SO | 1.106 | -0.013 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.37), rates preserved: AVG=0.226 HR/AB=0.038
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.167)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.161 | 0.161 |
| 3B | 0.011 | 0.011 |
| BB | 0.515 | 0.515 |
| H | 0.833 | -0.167 |
| HR | 0.118 | 0.118 |
| RBI | 0.531 | -0.469 |
| SO | 1.118 | 0.118 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.161 |
| 3B | 0.000 | -0.011 |
| AB | 4.000 | 0.000 |
| AVG | 0.227 | - |
| BB | 1.000 | 0.485 |
| H | 1.000 | 0.167 |
| HR | 0.000 | -0.118 |
| OBP | 0.328 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.469 |
| SLG | 0.374 | - |
| SO | 1.000 | -0.118 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.264 |
| predicted_3B | 0.000 | -0.017 |
| predicted_AB | 4.000 | -0.166 |
| predicted_AVG | 0.227 | -0.019 |
| predicted_BB | 1.000 | 0.462 |
| predicted_H | 1.000 | -0.026 |
| predicted_HR | 0.000 | -0.165 |
| predicted_OBP | 0.328 | -0.005 |
| predicted_R | 1.000 | 0.312 |
| predicted_RBI | 1.000 | 0.163 |
| predicted_SLG | 0.374 | -0.062 |
| predicted_SO | 1.000 | -0.106 |
KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.218 | -0.009 |
| BB | 1.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.316 | -0.012 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SLG | 0.358 | -0.016 |
| SO | 1.000 | 0.000 |
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -1.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | 0.000 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 19.000 | 5.000 | 2.000 | 0.000 | 1.000 | 6.000 | 3.000 | 2.000 | 4.000 | 0.2632 | 0.3333 | 0.5263 | 0.2632 | 0.0526 | 0.3158 | 0.1053 | 0.2105 |
| last_10 | 0.20 | 10 | - | 41.000 | 11.000 | 3.000 | 0.000 | 2.000 | 7.000 | 6.000 | 2.000 | 15.000 | 0.2683 | 0.3023 | 0.4878 | 0.2683 | 0.0488 | 0.1707 | 0.0488 | 0.3659 |
| season | 0.60 | 149 | - | 578.000 | 157.000 | 37.000 | 3.000 | 21.000 | 101.000 | 102.000 | 87.000 | 167.000 | 0.2716 | 0.3668 | 0.4550 | 0.2716 | 0.0363 | 0.1747 | 0.1505 | 0.2889 |
| Metric | Value |
|---|---|
| predicted_2B | 0.2850 |
| predicted_3B | 0.0120 |
| predicted_AB | 3.9030 |
| predicted_AVG | 0.2683 |
| predicted_BB | 0.4640 |
| predicted_H | 1.0470 |
| predicted_HBP | 0.0050 |
| predicted_HR | 0.1630 |
| predicted_OBP | 0.3454 |
| predicted_R | 0.6450 |
| predicted_RBI | 0.7760 |
| predicted_SLG | 0.4729 |
| predicted_SO | 1.1160 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2480 | 0.2850 | 0.2642 | model_form_blend |
| predicted_3B | 0.0200 | 0.0120 | 0.0165 | model_form_blend |
| predicted_AB | 4.3700 | 3.9030 | 4.1657 | model_form_blend |
| predicted_AVG | 0.2240 | 0.2683 | 0.2434 | model_form_blend |
| predicted_BB | 0.5840 | 0.4640 | 0.5315 | model_form_blend |
| predicted_H | 0.9800 | 1.0470 | 1.0093 | model_form_blend |
| predicted_HBP | - | 0.0050 | 0.0050 | form_only |
| predicted_HR | 0.1600 | 0.1630 | 0.1613 | model_form_blend |
| predicted_OBP | 0.3240 | 0.3454 | 0.3334 | model_form_blend |
| predicted_R | 0.6850 | 0.6450 | 0.6675 | model_form_blend |
| predicted_RBI | 0.8400 | 0.7760 | 0.8120 | model_form_blend |
| predicted_SLG | 0.4340 | 0.4729 | 0.4510 | model_form_blend |
| predicted_SO | 1.1210 | 1.1160 | 1.1188 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 653 |
| Season rows before report date | 653 |
| Report year | 2026 |
| Profile rows used | 149 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 4 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 1 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 2 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 2B |
| gameID | 20261004_SD@MIL |
| game_type | full |
| mlbID | 668930 |
| playerID | 668930 |
| playerName | Brice Turang |
| pos | 2B |
| started | True |
| startingPosition | 2B |
| team | MIL |
| teamID | 16 |
| game_date | 2026-10-04 |
| sl_k_percent | 25.1 |
| sl_bb_percent | 13.2 |
| sl_woba | 0.358 |
| sl_xwoba | 0.344 |
| sl_xba | 0.255 |
| sl_xslg | 0.428 |
| sl_sweet_spot_percent | 38.5 |
| sl_barrel_batted_rate | 7.7 |
| sl_hard_hit_percent | 41.6 |
| sl_exit_velocity_avg | 90.3 |
| sl_launch_angle_avg | 8.8 |
| sl_whiff_percent | 23.1 |
| sl_swing_percent | 43.2 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.190 | 0.000 | 0.000 | Hitting_2B | 0.201 | 1.000 | -0.201 | -1.000 |
| predicted_3B | 0.017 | 0.000 | 0.000 | Hitting_3B | 0.021 | 0.000 | -0.021 | 0.000 |
| predicted_AB | 3.850 | 4.000 | 4.000 | Hitting_AB | 3.973 | 3.000 | 0.027 | 1.000 |
| predicted_AVG | 0.230 | 0.500 | 0.500 | Hitting_AVG | 0.238 | 0.333 | 0.262 | 0.167 |
| predicted_BB | 0.431 | 0.000 | 0.000 | Hitting_BB | 0.458 | 1.000 | -0.458 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.010 | 0.000 | -0.010 | 0.000 |
| predicted_H | 0.890 | 2.000 | 2.000 | Hitting_H | 0.946 | 1.000 | 1.054 | 1.000 |
| predicted_HR | 0.100 | 0.000 | 0.000 | Hitting_HR | 0.105 | 0.000 | -0.105 | 0.000 |
| predicted_OBP | 0.323 | 0.500 | 0.500 | Hitting_OBP | 0.322 | 0.500 | 0.178 | 0.000 |
| predicted_R | 0.595 | 1.000 | 1.000 | Hitting_R | 0.638 | 2.000 | 0.362 | -1.000 |
| predicted_RBI | 0.450 | 0.000 | 0.000 | Hitting_RBI | 0.525 | 0.000 | -0.525 | 0.000 |
| predicted_SLG | 0.362 | 0.500 | 0.500 | Hitting_SLG | 0.378 | 0.667 | 0.122 | -0.167 |
| predicted_SO | 1.138 | 0.000 | 0.000 | Hitting_SO | 1.184 | 1.000 | -1.184 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 7 |
| Better Metrics | 4 |
| Worse Metrics | 6 |
| Biggest Boost | predicted_H: 0.8900 -> 2.0000 (boost 1.1100, better) |
| Biggest Deboost | predicted_SO: 1.1380 -> 0.0000 (deboost -1.1380, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 1 | 0 | 1 | 0 | 1 | - | 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. |
| 3 | team_form_snapshot | 1 | 1 | 0 | 1 | 0 | predicted_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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 2 | 5 | 3 | 4 | predicted_AB: 3.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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=18.0, weight=0.150, BvP AVG=0.389) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.6051 -> 1.0000 (boost 0.3949, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_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 |
| 9 | lineup_integer_allocation | 9 | 4 | 5 | 5 | 4 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 4 | 0 | 4 | 0 | 4 | - | 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 |
| 12 | play_by_play_realization | 3 | 1 | 2 | 2 | 1 | predicted_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 |
| 13 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 14 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.190 | - |
| predicted_3B | 0.017 | - |
| predicted_AB | 3.850 | - |
| predicted_AVG | 0.230 | - |
| predicted_BB | 0.431 | - |
| predicted_H | 0.890 | - |
| predicted_HR | 0.100 | - |
| predicted_OBP | 0.323 | - |
| predicted_R | 0.595 | - |
| predicted_RBI | 0.450 | - |
| predicted_SLG | 0.362 | - |
| predicted_SO | 1.138 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.184 | -0.006 |
| predicted_3B | 0.014 | -0.003 |
| predicted_AB | 3.722 | -0.128 |
| predicted_AVG | 0.231 | 0.001 |
| predicted_BB | 0.442 | 0.011 |
| predicted_H | 0.863 | -0.027 |
| predicted_HBP | 0.020 | - |
| predicted_HR | 0.092 | -0.008 |
| predicted_OBP | 0.322 | -0.001 |
| predicted_R | 0.587 | -0.008 |
| predicted_RBI | 0.442 | -0.008 |
| predicted_SLG | 0.360 | -0.002 |
| predicted_SO | 1.127 | -0.011 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.184 | 0.000 |
| predicted_3B | 0.014 | 0.000 |
| predicted_AB | 3.722 | 0.000 |
| predicted_AVG | 0.236 | 0.005 |
| predicted_BB | 0.447 | 0.005 |
| predicted_H | 0.877 | 0.014 |
| predicted_HBP | 0.020 | 0.000 |
| predicted_HR | 0.094 | 0.002 |
| predicted_OBP | 0.318 | -0.004 |
| predicted_R | 0.605 | 0.018 |
| predicted_RBI | 0.455 | 0.013 |
| predicted_SLG | 0.368 | 0.009 |
| predicted_SO | 1.114 | -0.013 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.85), rates preserved: AVG=0.220 HR/AB=0.024
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=18.0, weight=0.150, BvP AVG=0.389)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.171 | 0.171 |
| 3B | 0.011 | 0.011 |
| BB | 0.413 | 0.413 |
| H | 0.835 | -0.165 |
| HR | 0.121 | 0.121 |
| RBI | 0.500 | 0.500 |
| SO | 1.116 | 0.116 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.829 |
| 3B | 0.000 | -0.011 |
| AB | 4.000 | 0.000 |
| AVG | 0.228 | - |
| BB | 1.000 | 0.587 |
| H | 1.000 | 0.165 |
| HR | 0.000 | -0.121 |
| OBP | 0.311 | - |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.500 |
| SLG | 0.379 | - |
| SO | 1.000 | -0.116 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 1.000 | 0.816 |
| predicted_3B | 0.000 | -0.014 |
| predicted_AB | 4.000 | 0.278 |
| predicted_AVG | 0.228 | -0.008 |
| predicted_BB | 1.000 | 0.553 |
| predicted_H | 1.000 | 0.123 |
| predicted_HR | 0.000 | -0.094 |
| predicted_OBP | 0.311 | -0.007 |
| predicted_R | 1.000 | 0.395 |
| predicted_RBI | 0.000 | -0.455 |
| predicted_SLG | 0.379 | 0.011 |
| predicted_SO | 1.000 | -0.114 |
KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.218 | -0.010 |
| BB | 0.000 | -1.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.299 | -0.012 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.363 | -0.016 |
| SO | 1.000 | 0.000 |
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -1.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 2.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 15.000 | 4.000 | 1.000 | 0.000 | 0.000 | 1.000 | 3.000 | 3.000 | 5.000 | 0.2667 | 0.3889 | 0.3333 | 0.2667 | 0.0000 | 0.0667 | 0.2000 | 0.3333 |
| last_10 | 0.20 | 10 | - | 35.000 | 7.000 | 1.000 | 0.000 | 1.000 | 5.000 | 5.000 | 4.000 | 12.000 | 0.2000 | 0.2821 | 0.3143 | 0.2000 | 0.0286 | 0.1429 | 0.1143 | 0.3429 |
| season | 0.60 | 116 | - | 433.000 | 100.000 | 22.000 | 2.000 | 12.000 | 57.000 | 69.000 | 50.000 | 132.000 | 0.2309 | 0.3136 | 0.3741 | 0.2309 | 0.0277 | 0.1316 | 0.1155 | 0.3049 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1760 |
| predicted_3B | 0.0100 |
| predicted_AB | 3.5550 |
| predicted_AVG | 0.2328 |
| predicted_BB | 0.4570 |
| predicted_H | 0.8280 |
| predicted_HBP | 0.0200 |
| predicted_HR | 0.0820 |
| predicted_OBP | 0.3214 |
| predicted_R | 0.5770 |
| predicted_RBI | 0.4310 |
| predicted_SLG | 0.3570 |
| predicted_SO | 1.1120 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1900 | 0.1760 | 0.1839 | model_form_blend |
| predicted_3B | 0.0170 | 0.0100 | 0.0140 | model_form_blend |
| predicted_AB | 3.8500 | 3.5550 | 3.7222 | model_form_blend |
| predicted_AVG | 0.2300 | 0.2328 | 0.2312 | model_form_blend |
| predicted_BB | 0.4310 | 0.4570 | 0.4423 | model_form_blend |
| predicted_H | 0.8900 | 0.8280 | 0.8631 | model_form_blend |
| predicted_HBP | - | 0.0200 | 0.0200 | form_only |
| predicted_HR | 0.1000 | 0.0820 | 0.0922 | model_form_blend |
| predicted_OBP | 0.3230 | 0.3214 | 0.3223 | model_form_blend |
| predicted_R | 0.5950 | 0.5770 | 0.5872 | model_form_blend |
| predicted_RBI | 0.4500 | 0.4310 | 0.4418 | model_form_blend |
| predicted_SLG | 0.3620 | 0.3570 | 0.3598 | model_form_blend |
| predicted_SO | 1.1380 | 1.1120 | 1.1267 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 478 |
| Season rows before report date | 478 |
| Report year | 2026 |
| Profile rows used | 116 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 2 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 1 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 1 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.333 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 2 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 2 |
| Hitting_battingOrder | 6 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | DH |
| gameID | 20261004_SD@MIL |
| game_type | full |
| mlbID | 592885 |
| playerID | 592885 |
| playerName | Christian Yelich |
| pos | DH |
| started | True |
| startingPosition | DH |
| team | MIL |
| teamID | 16 |
| game_date | 2026-10-04 |
| sl_k_percent | 27.0 |
| sl_bb_percent | 9.8 |
| sl_woba | 0.305 |
| sl_xwoba | 0.308 |
| sl_xba | 0.23 |
| sl_xslg | 0.385 |
| sl_sweet_spot_percent | 29.5 |
| sl_barrel_batted_rate | 9.6 |
| sl_hard_hit_percent | 42.9 |
| sl_exit_velocity_avg | 88.9 |
| sl_launch_angle_avg | 4.0 |
| sl_whiff_percent | 29.6 |
| sl_swing_percent | 45.4 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.201 | 1.000 | 1.000 | Hitting_2B | 0.232 | 0.000 | 0.768 | 1.000 |
| predicted_3B | 0.029 | 0.000 | 0.000 | Hitting_3B | 0.034 | 0.000 | -0.034 | 0.000 |
| predicted_AB | 4.070 | 3.000 | 3.000 | Hitting_AB | 3.540 | 4.000 | -0.540 | -1.000 |
| predicted_AVG | 0.240 | 0.333 | 0.333 | Hitting_AVG | 0.274 | 0.250 | 0.060 | 0.083 |
| predicted_BB | 0.403 | 1.000 | 1.000 | Hitting_BB | 0.431 | 0.000 | 0.569 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.058 | 0.000 | -0.058 | 0.000 |
| predicted_H | 0.980 | 1.000 | 1.000 | Hitting_H | 0.968 | 1.000 | 0.032 | 0.000 |
| predicted_HR | 0.080 | 0.000 | 0.000 | Hitting_HR | 0.083 | 0.000 | -0.083 | 0.000 |
| predicted_OBP | 0.336 | 0.500 | 0.500 | Hitting_OBP | 0.358 | 0.250 | 0.142 | 0.250 |
| predicted_R | 0.525 | 1.000 | 1.000 | Hitting_R | 0.583 | 1.000 | 0.417 | 0.000 |
| predicted_RBI | 0.320 | 2.000 | 2.000 | Hitting_RBI | 0.526 | 0.000 | 1.474 | 2.000 |
| predicted_SLG | 0.341 | 0.667 | 0.667 | Hitting_SLG | 0.429 | 0.250 | 0.238 | 0.417 |
| predicted_SO | 1.187 | 0.000 | 0.000 | Hitting_SO | 1.181 | 2.000 | -1.181 | -2.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 9 |
| Boosted Metrics | 4 |
| Deboosted Metrics | 5 |
| Better Metrics | 5 |
| Worse Metrics | 4 |
| Biggest Boost | predicted_RBI: 0.3200 -> 2.0000 (boost 1.6800, better) |
| Biggest Deboost | predicted_SO: 1.1870 -> 0.0000 (deboost -1.1870, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 1 | 2 | 1 | 2 | predicted_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. |
| 3 | team_form_snapshot | 2 | 1 | 1 | 1 | 1 | predicted_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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 1 | 6 | 2 | 5 | predicted_H: 0.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 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5996 -> 1.0000 (boost 0.4004, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_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 |
| 8 | lineup_integer_allocation | 8 | 2 | 6 | 3 | 5 | predicted_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 |
| 9 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 11 | play_by_play_realization | 3 | 2 | 1 | 3 | 0 | predicted_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 |
| 12 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 13 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.201 | - |
| predicted_3B | 0.029 | - |
| predicted_AB | 4.070 | - |
| predicted_AVG | 0.240 | - |
| predicted_BB | 0.403 | - |
| predicted_H | 0.980 | - |
| predicted_HR | 0.080 | - |
| predicted_OBP | 0.336 | - |
| predicted_R | 0.525 | - |
| predicted_RBI | 0.320 | - |
| predicted_SLG | 0.341 | - |
| predicted_SO | 1.187 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.167 | -0.034 |
| predicted_3B | 0.024 | -0.005 |
| predicted_AB | 3.728 | -0.342 |
| predicted_AVG | 0.244 | 0.004 |
| predicted_BB | 0.426 | 0.023 |
| predicted_H | 0.910 | -0.070 |
| predicted_HBP | 0.026 | - |
| predicted_HR | 0.066 | -0.014 |
| predicted_OBP | 0.340 | 0.004 |
| predicted_R | 0.582 | 0.057 |
| predicted_RBI | 0.293 | -0.027 |
| predicted_SLG | 0.341 | -0.000 |
| predicted_SO | 1.164 | -0.023 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.167 | 0.000 |
| predicted_3B | 0.024 | 0.000 |
| predicted_AB | 3.728 | 0.000 |
| predicted_AVG | 0.248 | 0.004 |
| predicted_BB | 0.431 | 0.005 |
| predicted_H | 0.925 | 0.015 |
| predicted_HBP | 0.026 | 0.000 |
| predicted_HR | 0.067 | 0.001 |
| predicted_OBP | 0.326 | -0.014 |
| predicted_R | 0.600 | 0.018 |
| predicted_RBI | 0.302 | 0.009 |
| predicted_SLG | 0.360 | 0.019 |
| predicted_SO | 1.150 | -0.014 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=4.07), rates preserved: AVG=0.219 HR/AB=0.016
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.157 | 0.157 |
| 3B | 0.015 | 0.015 |
| BB | 0.413 | 0.413 |
| H | 0.796 | -0.204 |
| HR | 0.087 | 0.087 |
| RBI | 0.403 | 0.403 |
| SO | 1.296 | 0.296 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.157 |
| 3B | 0.000 | -0.015 |
| AB | 3.000 | 0.000 |
| AVG | 0.228 | - |
| BB | 1.000 | 0.587 |
| H | 1.000 | 0.204 |
| HR | 0.000 | -0.087 |
| OBP | 0.314 | - |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.403 |
| SLG | 0.356 | - |
| SO | 1.000 | -0.296 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.167 |
| predicted_3B | 0.000 | -0.024 |
| predicted_AB | 3.000 | -0.728 |
| predicted_AVG | 0.228 | -0.020 |
| predicted_BB | 1.000 | 0.569 |
| predicted_H | 1.000 | 0.075 |
| predicted_HR | 0.000 | -0.067 |
| predicted_OBP | 0.314 | -0.012 |
| predicted_R | 1.000 | 0.400 |
| predicted_RBI | 0.000 | -0.302 |
| predicted_SLG | 0.356 | -0.004 |
| predicted_SO | 1.000 | -0.150 |
KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| AVG | 0.218 | -0.010 |
| BB | 1.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.303 | -0.011 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.340 | -0.016 |
| SO | 1.000 | 0.000 |
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 1.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 1.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 0.000 |
| RBI | 2.000 | 2.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 1.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 1.000 | 0.000 |
| RBI | 2.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 15.000 | 4.000 | 0.000 | 0.000 | 0.000 | 0.000 | 5.000 | 3.000 | 4.000 | 0.2667 | 0.3889 | 0.2667 | 0.2667 | 0.0000 | 0.0000 | 0.2000 | 0.2667 |
| last_10 | 0.20 | 10 | - | 34.000 | 7.000 | 0.000 | 0.000 | 0.000 | 0.000 | 7.000 | 5.000 | 14.000 | 0.2059 | 0.3077 | 0.2059 | 0.2059 | 0.0000 | 0.0000 | 0.1471 | 0.4118 |
| season | 0.60 | 139 | - | 457.000 | 118.000 | 28.000 | 4.000 | 10.000 | 58.000 | 73.000 | 56.000 | 165.000 | 0.2582 | 0.3462 | 0.4026 | 0.2582 | 0.0219 | 0.1269 | 0.1225 | 0.3610 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1220 |
| predicted_3B | 0.0170 |
| predicted_AB | 3.2830 |
| predicted_AVG | 0.2494 |
| predicted_BB | 0.4560 |
| predicted_H | 0.8190 |
| predicted_HBP | 0.0260 |
| predicted_HR | 0.0470 |
| predicted_OBP | 0.3448 |
| predicted_R | 0.6560 |
| predicted_RBI | 0.2590 |
| predicted_SLG | 0.3400 |
| predicted_SO | 1.1330 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2010 | 0.1220 | 0.1667 | model_form_blend |
| predicted_3B | 0.0290 | 0.0170 | 0.0238 | model_form_blend |
| predicted_AB | 4.0700 | 3.2830 | 3.7284 | model_form_blend |
| predicted_AVG | 0.2400 | 0.2494 | 0.2441 | model_form_blend |
| predicted_BB | 0.4030 | 0.4560 | 0.4260 | model_form_blend |
| predicted_H | 0.9800 | 0.8190 | 0.9101 | model_form_blend |
| predicted_HBP | - | 0.0260 | 0.0260 | form_only |
| predicted_HR | 0.0800 | 0.0470 | 0.0657 | model_form_blend |
| predicted_OBP | 0.3360 | 0.3448 | 0.3398 | model_form_blend |
| predicted_R | 0.5250 | 0.6560 | 0.5819 | model_form_blend |
| predicted_RBI | 0.3200 | 0.2590 | 0.2935 | model_form_blend |
| predicted_SLG | 0.3410 | 0.3400 | 0.3406 | model_form_blend |
| predicted_SO | 1.1870 | 1.1330 | 1.1636 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 504 |
| Season rows before report date | 504 |
| Report year | 2026 |
| Profile rows used | 139 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 1 |
| 2B | 1 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 2 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.25 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 2 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 5 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | CF |
| gameID | 20261004_SD@MIL |
| game_type | full |
| mlbID | 669003 |
| playerID | 669003 |
| playerName | Garrett Mitchell |
| pos | CF |
| started | True |
| startingPosition | CF |
| team | MIL |
| teamID | 16 |
| game_date | 2026-10-04 |
| sl_k_percent | 31.5 |
| sl_bb_percent | 11.3 |
| sl_woba | 0.34 |
| sl_xwoba | 0.353 |
| sl_xba | 0.268 |
| sl_xslg | 0.447 |
| sl_sweet_spot_percent | 31.5 |
| sl_barrel_batted_rate | 11.7 |
| sl_hard_hit_percent | 52.7 |
| sl_exit_velocity_avg | 93.2 |
| sl_launch_angle_avg | 2.2 |
| sl_whiff_percent | 35.8 |
| sl_swing_percent | 43.9 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.083 | 0.000 | 0.000 | Hitting_2B | 0.104 | 0.000 | -0.104 | 0.000 |
| predicted_3B | 0.028 | 0.000 | 0.000 | Hitting_3B | 0.056 | 0.000 | -0.056 | 0.000 |
| predicted_AB | 3.181 | 4.000 | 4.000 | Hitting_AB | 3.312 | 3.000 | 0.688 | 1.000 |
| predicted_AVG | 0.253 | 0.000 | 0.000 | Hitting_AVG | 0.286 | 0.333 | -0.286 | -0.333 |
| predicted_BB | 0.333 | 0.000 | 0.000 | Hitting_BB | 0.376 | 0.000 | -0.376 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.024 | 0.000 | -0.024 | 0.000 |
| predicted_H | 0.800 | 0.000 | 0.000 | Hitting_H | 0.948 | 1.000 | -0.948 | -1.000 |
| predicted_HR | 0.030 | 0.000 | 0.000 | Hitting_HR | 0.048 | 0.000 | -0.048 | 0.000 |
| predicted_OBP | 0.309 | 0.000 | 0.000 | Hitting_OBP | 0.355 | 0.333 | -0.355 | -0.333 |
| predicted_R | 0.417 | 0.000 | 0.000 | Hitting_R | 0.536 | 0.000 | -0.536 | 0.000 |
| predicted_RBI | 0.310 | 0.000 | 0.000 | Hitting_RBI | 0.556 | 0.000 | -0.556 | 0.000 |
| predicted_SLG | 0.316 | 0.000 | 0.000 | Hitting_SLG | 0.395 | 0.333 | -0.395 | -0.333 |
| predicted_SO | 0.667 | 3.000 | 3.000 | Hitting_SO | 0.648 | 0.000 | 2.352 | 3.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 7 |
| Better Metrics | 2 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_SO: 0.6670 -> 3.0000 (boost 2.3330, worse) |
| Biggest Deboost | predicted_H: 0.8000 -> 0.0000 (deboost -0.8000, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 2 | 1 | 1 | 1 | 1 | predicted_SLG: 0.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. |
| 3 | team_form_snapshot | 2 | 2 | 0 | 2 | 0 | predicted_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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 2 | 4 | 1 | 5 | predicted_SO: 0.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 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3734 -> 0.0000 (deboost -0.3734, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_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 |
| 8 | lineup_integer_allocation | 9 | 3 | 6 | 2 | 7 | predicted_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 |
| 9 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | kpi_run_environment | 4 | 0 | 4 | 0 | 4 | - | 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 |
| 11 | play_by_play_realization | 2 | 2 | 0 | 1 | 1 | predicted_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 |
| 12 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 13 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.083 | - |
| predicted_3B | 0.028 | - |
| predicted_AB | 3.181 | - |
| predicted_AVG | 0.253 | - |
| predicted_BB | 0.333 | - |
| predicted_H | 0.800 | - |
| predicted_HR | 0.030 | - |
| predicted_OBP | 0.309 | - |
| predicted_R | 0.417 | - |
| predicted_RBI | 0.310 | - |
| predicted_SLG | 0.316 | - |
| predicted_SO | 0.667 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.097 | 0.014 |
| predicted_3B | 0.023 | -0.005 |
| predicted_AB | 3.188 | 0.007 |
| predicted_AVG | 0.254 | 0.001 |
| predicted_BB | 0.325 | -0.008 |
| predicted_H | 0.808 | 0.008 |
| predicted_HBP | 0.018 | - |
| predicted_HR | 0.032 | 0.002 |
| predicted_OBP | 0.314 | 0.005 |
| predicted_R | 0.362 | -0.055 |
| predicted_RBI | 0.325 | 0.015 |
| predicted_SLG | 0.324 | 0.008 |
| predicted_SO | 0.696 | 0.029 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.097 | 0.000 |
| predicted_3B | 0.023 | 0.000 |
| predicted_AB | 3.188 | 0.000 |
| predicted_AVG | 0.258 | 0.003 |
| predicted_BB | 0.329 | 0.004 |
| predicted_H | 0.821 | 0.014 |
| predicted_HBP | 0.018 | 0.000 |
| predicted_HR | 0.032 | 0.001 |
| predicted_OBP | 0.327 | 0.013 |
| predicted_R | 0.373 | 0.011 |
| predicted_RBI | 0.335 | 0.010 |
| predicted_SLG | 0.333 | 0.009 |
| predicted_SO | 0.688 | -0.008 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.19), rates preserved: AVG=0.248 HR/AB=0.010
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.119 | 0.119 |
| 3B | 0.012 | 0.012 |
| BB | 0.325 | 0.325 |
| H | 0.785 | -0.215 |
| HR | 0.075 | 0.075 |
| RBI | 0.428 | 0.428 |
| SO | 0.799 | -0.201 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.119 |
| 3B | 0.000 | -0.012 |
| AB | 3.000 | 0.000 |
| AVG | 0.231 | - |
| BB | 0.000 | -0.325 |
| H | 1.000 | 0.215 |
| HR | 0.000 | -0.075 |
| OBP | 0.303 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.428 |
| SLG | 0.339 | - |
| SO | 1.000 | 0.201 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.097 |
| predicted_3B | 0.000 | -0.023 |
| predicted_AB | 3.000 | -0.188 |
| predicted_AVG | 0.231 | -0.027 |
| predicted_BB | 0.000 | -0.329 |
| predicted_H | 1.000 | 0.179 |
| predicted_HR | 0.000 | -0.032 |
| predicted_OBP | 0.303 | -0.024 |
| predicted_R | 0.000 | -0.373 |
| predicted_RBI | 0.000 | -0.335 |
| predicted_SLG | 0.339 | 0.006 |
| predicted_SO | 1.000 | 0.312 |
KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| AVG | 0.221 | -0.010 |
| BB | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.291 | -0.012 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.325 | -0.014 |
| SO | 1.000 | 0.000 |
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 3.000 | 2.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 3.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 15.000 | 3.000 | 1.000 | 0.000 | 0.000 | 0.000 | 0.000 | 1.000 | 4.000 | 0.2000 | 0.2500 | 0.2667 | 0.2000 | 0.0000 | 0.0000 | 0.0667 | 0.2667 |
| last_10 | 0.20 | 10 | - | 31.000 | 8.000 | 1.000 | 0.000 | 0.000 | 3.000 | 1.000 | 4.000 | 8.000 | 0.2581 | 0.3429 | 0.2903 | 0.2581 | 0.0000 | 0.0968 | 0.1290 | 0.2581 |
| season | 0.60 | 72 | - | 229.000 | 63.000 | 6.000 | 2.000 | 3.000 | 33.000 | 30.000 | 24.000 | 48.000 | 0.2751 | 0.3397 | 0.3581 | 0.2751 | 0.0131 | 0.1441 | 0.1048 | 0.2096 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1170 |
| predicted_3B | 0.0160 |
| predicted_AB | 3.1970 |
| predicted_AVG | 0.2558 |
| predicted_BB | 0.3150 |
| predicted_H | 0.8180 |
| predicted_HBP | 0.0180 |
| predicted_HR | 0.0340 |
| predicted_OBP | 0.3207 |
| predicted_R | 0.2870 |
| predicted_RBI | 0.3450 |
| predicted_SLG | 0.3346 |
| predicted_SO | 0.7350 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.0830 | 0.1170 | 0.0973 | model_form_blend |
| predicted_3B | 0.0280 | 0.0160 | 0.0230 | model_form_blend |
| predicted_AB | 3.1810 | 3.1970 | 3.1877 | model_form_blend |
| predicted_AVG | 0.2530 | 0.2558 | 0.2542 | model_form_blend |
| predicted_BB | 0.3330 | 0.3150 | 0.3254 | model_form_blend |
| predicted_H | 0.8000 | 0.8180 | 0.8076 | model_form_blend |
| predicted_HBP | - | 0.0180 | 0.0180 | form_only |
| predicted_HR | 0.0300 | 0.0340 | 0.0317 | model_form_blend |
| predicted_OBP | 0.3090 | 0.3207 | 0.3139 | model_form_blend |
| predicted_R | 0.4170 | 0.2870 | 0.3624 | model_form_blend |
| predicted_RBI | 0.3100 | 0.3450 | 0.3247 | model_form_blend |
| predicted_SLG | 0.3160 | 0.3346 | 0.3238 | model_form_blend |
| predicted_SO | 0.6670 | 0.7350 | 0.6956 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 250 |
| Season rows before report date | 250 |
| Report year | 2026 |
| Profile rows used | 72 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 3 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 1 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.333 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 8 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | SS |
| gameID | 20261004_SD@MIL |
| game_type | full |
| mlbID | 806198 |
| playerID | 806198 |
| playerName | Cooper Pratt |
| pos | SS |
| started | True |
| startingPosition | SS |
| team | MIL |
| teamID | 16 |
| game_date | 2026-10-04 |
| sl_k_percent | 18.0 |
| sl_bb_percent | 9.8 |
| sl_woba | 0.32 |
| sl_xwoba | 0.315 |
| sl_xba | 0.266 |
| sl_xslg | 0.362 |
| sl_sweet_spot_percent | 41.1 |
| sl_barrel_batted_rate | 3.2 |
| sl_hard_hit_percent | 27.4 |
| sl_exit_velocity_avg | 87.0 |
| sl_launch_angle_avg | 9.1 |
| sl_whiff_percent | 21.8 |
| sl_swing_percent | 46.4 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.168 | 0.000 | 0.000 | Hitting_2B | 0.209 | 0.000 | -0.209 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 3.121 | 4.000 | 4.000 | Hitting_AB | 3.493 | 2.000 | 0.507 | 2.000 |
| predicted_AVG | 0.231 | 0.250 | 0.250 | Hitting_AVG | 0.239 | 0.500 | 0.011 | -0.250 |
| predicted_BB | 0.280 | 0.000 | 0.000 | Hitting_BB | 0.327 | 2.000 | -0.327 | -2.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.027 | 0.000 | -0.027 | 0.000 |
| predicted_H | 0.570 | 1.000 | 1.000 | Hitting_H | 0.836 | 1.000 | 0.164 | 0.000 |
| predicted_HR | 0.020 | 0.000 | 0.000 | Hitting_HR | 0.048 | 0.000 | -0.048 | 0.000 |
| predicted_OBP | 0.319 | 0.250 | 0.250 | Hitting_OBP | 0.305 | 0.750 | -0.055 | -0.500 |
| predicted_R | 0.346 | 0.000 | 0.000 | Hitting_R | 0.394 | 1.000 | -0.394 | -1.000 |
| predicted_RBI | 0.360 | 1.000 | 1.000 | Hitting_RBI | 0.437 | 1.000 | 0.563 | 0.000 |
| predicted_SLG | 0.305 | 0.250 | 0.250 | Hitting_SLG | 0.341 | 0.500 | -0.091 | -0.250 |
| predicted_SO | 0.355 | 0.000 | 0.000 | Hitting_SO | 0.421 | 0.000 | -0.421 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | deboosted |
| Changed Metrics | 10 |
| Boosted Metrics | 4 |
| Deboosted Metrics | 6 |
| Better Metrics | 5 |
| Worse Metrics | 5 |
| Biggest Boost | predicted_AB: 3.1210 -> 4.0000 (boost 0.8790, better) |
| Biggest Deboost | predicted_SO: 0.3550 -> 0.0000 (deboost -0.3550, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 1 | 2 | 2 | 1 | predicted_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. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 5 | 1 | 4 | 2 | 3 | predicted_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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.400) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3244 -> 0.0000 (deboost -0.3244, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_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 |
| 9 | lineup_integer_allocation | 9 | 4 | 5 | 3 | 6 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 12 | play_by_play_realization | 4 | 3 | 1 | 4 | 0 | predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better) | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better) | Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score |
| 13 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 14 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.168 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 3.121 | - |
| predicted_AVG | 0.231 | - |
| predicted_BB | 0.280 | - |
| predicted_H | 0.570 | - |
| predicted_HR | 0.020 | - |
| predicted_OBP | 0.319 | - |
| predicted_R | 0.346 | - |
| predicted_RBI | 0.360 | - |
| predicted_SLG | 0.305 | - |
| predicted_SO | 0.355 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.166 | -0.002 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.013 | -0.108 |
| predicted_AVG | 0.227 | -0.004 |
| predicted_BB | 0.355 | 0.075 |
| predicted_H | 0.597 | 0.027 |
| predicted_HBP | 0.011 | - |
| predicted_HR | 0.023 | 0.003 |
| predicted_OBP | 0.321 | 0.002 |
| predicted_R | 0.315 | -0.031 |
| predicted_RBI | 0.376 | 0.016 |
| predicted_SLG | 0.306 | 0.001 |
| predicted_SO | 0.301 | -0.054 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.166 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.013 | 0.000 |
| predicted_AVG | 0.202 | -0.025 |
| predicted_BB | 0.359 | 0.004 |
| predicted_H | 0.607 | 0.010 |
| predicted_HBP | 0.011 | 0.000 |
| predicted_HR | 0.024 | 0.001 |
| predicted_OBP | 0.287 | -0.035 |
| predicted_R | 0.324 | 0.010 |
| predicted_RBI | 0.388 | 0.011 |
| predicted_SLG | 0.280 | -0.025 |
| predicted_SO | 0.298 | -0.004 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.12), rates preserved: AVG=0.188 HR/AB=0.008
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 0.000 | - |
Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.400)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 0.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.138 | 0.138 |
| 3B | 0.007 | 0.007 |
| BB | 0.314 | 0.314 |
| H | 0.756 | -0.244 |
| HR | 0.066 | 0.066 |
| RBI | 0.383 | 0.383 |
| SO | 0.484 | 0.484 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.138 |
| 3B | 0.000 | -0.007 |
| AB | 3.000 | 0.000 |
| AVG | 0.227 | - |
| BB | 0.000 | -0.314 |
| H | 0.000 | -0.756 |
| HR | 0.000 | -0.066 |
| OBP | 0.299 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.383 |
| SLG | 0.332 | - |
| SO | 1.000 | 0.516 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.166 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 3.000 | -0.013 |
| predicted_AVG | 0.227 | 0.025 |
| predicted_BB | 0.000 | -0.359 |
| predicted_H | 0.000 | -0.607 |
| predicted_HR | 0.000 | -0.024 |
| predicted_OBP | 0.299 | 0.012 |
| predicted_R | 0.000 | -0.324 |
| predicted_RBI | 0.000 | -0.388 |
| predicted_SLG | 0.332 | 0.052 |
| predicted_SO | 1.000 | 0.702 |
KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| AVG | 0.217 | -0.010 |
| BB | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.288 | -0.011 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.318 | -0.014 |
| SO | 1.000 | 0.000 |
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 1.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 12.000 | 2.000 | 1.000 | 0.000 | 0.000 | 2.000 | 1.000 | 4.000 | 0.000 | 0.1667 | 0.3750 | 0.2500 | 0.1667 | 0.0000 | 0.1667 | 0.3333 | 0.0000 |
| last_10 | 0.20 | 10 | - | 22.000 | 5.000 | 1.000 | 0.000 | 0.000 | 4.000 | 1.000 | 5.000 | 0.000 | 0.2273 | 0.3571 | 0.2727 | 0.2273 | 0.0000 | 0.1818 | 0.2273 | 0.0000 |
| season | 0.60 | 107 | - | 334.000 | 78.000 | 18.000 | 0.000 | 4.000 | 39.000 | 37.000 | 30.000 | 38.000 | 0.2335 | 0.2989 | 0.3234 | 0.2335 | 0.0120 | 0.1168 | 0.0898 | 0.1138 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1640 |
| predicted_3B | 0.0010 |
| predicted_AB | 2.8690 |
| predicted_AVG | 0.2211 |
| predicted_BB | 0.4550 |
| predicted_H | 0.6340 |
| predicted_HBP | 0.0110 |
| predicted_HR | 0.0270 |
| predicted_OBP | 0.3242 |
| predicted_R | 0.2730 |
| predicted_RBI | 0.3980 |
| predicted_SLG | 0.3068 |
| predicted_SO | 0.2290 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1680 | 0.1640 | 0.1663 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 3.1210 | 2.8690 | 3.0132 | model_form_blend |
| predicted_AVG | 0.2310 | 0.2211 | 0.2268 | model_form_blend |
| predicted_BB | 0.2800 | 0.4550 | 0.3549 | model_form_blend |
| predicted_H | 0.5700 | 0.6340 | 0.5974 | model_form_blend |
| predicted_HBP | - | 0.0110 | 0.0110 | form_only |
| predicted_HR | 0.0200 | 0.0270 | 0.0230 | model_form_blend |
| predicted_OBP | 0.3190 | 0.3242 | 0.3212 | model_form_blend |
| predicted_R | 0.3460 | 0.2730 | 0.3148 | model_form_blend |
| predicted_RBI | 0.3600 | 0.3980 | 0.3763 | model_form_blend |
| predicted_SLG | 0.3050 | 0.3068 | 0.3058 | model_form_blend |
| predicted_SO | 0.3550 | 0.2290 | 0.3011 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 373 |
| Season rows before report date | 373 |
| Report year | 2026 |
| Profile rows used | 107 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 1 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 1 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 2 |
| Hitting_AVG | 0.5 |
| Hitting_BB | 2 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 7 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | RF |
| gameID | 20261004_SD@MIL |
| game_type | full |
| mlbID | 686217 |
| playerID | 686217 |
| playerName | Sal Frelick |
| pos | RF |
| started | True |
| startingPosition | RF |
| team | MIL |
| teamID | 16 |
| game_date | 2026-10-04 |
| sl_k_percent | 9.9 |
| sl_bb_percent | 8.1 |
| sl_woba | 0.275 |
| sl_xwoba | 0.281 |
| sl_xba | 0.241 |
| sl_xslg | 0.324 |
| sl_sweet_spot_percent | 27.4 |
| sl_barrel_batted_rate | 2.3 |
| sl_hard_hit_percent | 26.8 |
| sl_exit_velocity_avg | 85.7 |
| sl_launch_angle_avg | 9.8 |
| sl_whiff_percent | 10.1 |
| sl_swing_percent | 42.8 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.111 | 0.000 | 0.000 | Hitting_2B | 0.118 | 0.000 | -0.118 | 0.000 |
| predicted_3B | 0.034 | 0.000 | 0.000 | Hitting_3B | 0.034 | 0.000 | -0.034 | 0.000 |
| predicted_AB | 3.137 | 4.000 | 4.000 | Hitting_AB | 3.248 | 0.000 | 0.752 | 4.000 |
| predicted_AVG | 0.264 | 0.250 | 0.250 | Hitting_AVG | 0.279 | - | -0.029 | - |
| predicted_BB | 0.291 | 0.000 | 0.000 | Hitting_BB | 0.309 | 0.000 | -0.309 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.037 | 0.000 | -0.037 | 0.000 |
| predicted_H | 0.829 | 1.000 | 1.000 | Hitting_H | 0.907 | 0.000 | 0.093 | 1.000 |
| predicted_HR | 0.077 | 0.000 | 0.000 | Hitting_HR | 0.098 | 0.000 | -0.098 | 0.000 |
| predicted_OBP | 0.327 | 0.250 | 0.250 | Hitting_OBP | 0.337 | - | -0.087 | - |
| predicted_R | 0.402 | 0.000 | 0.000 | Hitting_R | 0.451 | 0.000 | -0.451 | 0.000 |
| predicted_RBI | 0.393 | 0.000 | 0.000 | Hitting_RBI | 0.419 | 0.000 | -0.419 | 0.000 |
| predicted_SLG | 0.395 | 0.250 | 0.250 | Hitting_SLG | 0.427 | - | -0.177 | - |
| predicted_SO | 0.718 | 0.000 | 0.000 | Hitting_SO | 0.694 | 0.000 | -0.694 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 9 |
| Better Metrics | 3 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_AB: 3.1370 -> 4.0000 (boost 0.8630, better) |
| Biggest Deboost | predicted_SO: 0.7180 -> 0.0000 (deboost -0.7180, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 2 | 2 | 1 | 3 | predicted_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. |
| 3 | team_form_snapshot | 1 | 1 | 0 | 1 | 0 | predicted_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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 2 | 5 | 1 | 6 | predicted_SO: 0.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 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3956 -> 0.0000 (deboost -0.3956, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_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 |
| 8 | lineup_integer_allocation | 9 | 2 | 7 | 1 | 8 | predicted_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 |
| 9 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 11 | play_by_play_realization | 2 | 1 | 1 | 2 | 0 | predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better) | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better) | Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score |
| 12 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 13 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 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 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.105 | -0.006 |
| predicted_3B | 0.036 | 0.002 |
| predicted_AB | 3.263 | 0.126 |
| predicted_AVG | 0.261 | -0.003 |
| predicted_BB | 0.285 | -0.006 |
| predicted_H | 0.853 | 0.024 |
| predicted_HBP | 0.002 | - |
| predicted_HR | 0.068 | -0.009 |
| predicted_OBP | 0.320 | -0.007 |
| predicted_R | 0.384 | -0.018 |
| predicted_RBI | 0.376 | -0.017 |
| predicted_SLG | 0.379 | -0.017 |
| predicted_SO | 0.866 | 0.148 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.105 | 0.000 |
| predicted_3B | 0.036 | 0.000 |
| predicted_AB | 3.263 | 0.000 |
| predicted_AVG | 0.266 | 0.004 |
| predicted_BB | 0.289 | 0.003 |
| predicted_H | 0.867 | 0.014 |
| predicted_HBP | 0.002 | 0.000 |
| predicted_HR | 0.069 | 0.001 |
| predicted_OBP | 0.325 | 0.005 |
| predicted_R | 0.396 | 0.012 |
| predicted_RBI | 0.388 | 0.011 |
| predicted_SLG | 0.383 | 0.005 |
| predicted_SO | 0.856 | -0.010 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.26), rates preserved: AVG=0.256 HR/AB=0.021
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.122 | 0.122 |
| 3B | 0.015 | 0.015 |
| BB | 0.304 | 0.304 |
| H | 0.787 | -0.213 |
| HR | 0.091 | 0.091 |
| RBI | 0.402 | 0.402 |
| SO | 0.875 | -0.125 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.122 |
| 3B | 0.000 | -0.015 |
| AB | 3.000 | 0.000 |
| AVG | 0.232 | - |
| BB | 0.000 | -0.304 |
| H | 1.000 | 0.213 |
| HR | 0.000 | -0.091 |
| OBP | 0.301 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.402 |
| SLG | 0.358 | - |
| SO | 1.000 | 0.125 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.105 |
| predicted_3B | 0.000 | -0.036 |
| predicted_AB | 3.000 | -0.263 |
| predicted_AVG | 0.232 | -0.034 |
| predicted_BB | 0.000 | -0.289 |
| predicted_H | 1.000 | 0.133 |
| predicted_HR | 0.000 | -0.069 |
| predicted_OBP | 0.301 | -0.024 |
| predicted_R | 0.000 | -0.396 |
| predicted_RBI | 0.000 | -0.388 |
| predicted_SLG | 0.358 | -0.025 |
| predicted_SO | 1.000 | 0.144 |
KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| AVG | 0.222 | -0.010 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.289 | -0.012 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.342 | -0.016 |
| SO | 1.000 | 0.000 |
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 19.000 | 4.000 | 0.000 | 0.000 | 0.000 | 1.000 | 0.000 | 1.000 | 10.000 | 0.2105 | 0.2500 | 0.2105 | 0.2105 | 0.0000 | 0.0526 | 0.0526 | 0.5263 |
| last_10 | 0.20 | 10 | - | 38.000 | 11.000 | 1.000 | 1.000 | 0.000 | 3.000 | 5.000 | 3.000 | 14.000 | 0.2895 | 0.3415 | 0.3684 | 0.2895 | 0.0000 | 0.0790 | 0.0790 | 0.3684 |
| season | 0.60 | 117 | - | 367.000 | 97.000 | 13.000 | 4.000 | 9.000 | 46.000 | 47.000 | 34.000 | 84.000 | 0.2643 | 0.3227 | 0.3951 | 0.2643 | 0.0245 | 0.1253 | 0.0926 | 0.2289 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0960 |
| predicted_3B | 0.0390 |
| predicted_AB | 3.4300 |
| predicted_AVG | 0.2579 |
| predicted_BB | 0.2780 |
| predicted_H | 0.8840 |
| predicted_HBP | 0.0020 |
| predicted_HR | 0.0550 |
| predicted_OBP | 0.3115 |
| predicted_R | 0.3600 |
| predicted_RBI | 0.3540 |
| predicted_SLG | 0.3566 |
| predicted_SO | 1.0630 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1110 | 0.0960 | 0.1046 | model_form_blend |
| predicted_3B | 0.0340 | 0.0390 | 0.0361 | model_form_blend |
| predicted_AB | 3.1370 | 3.4300 | 3.2630 | model_form_blend |
| predicted_AVG | 0.2640 | 0.2579 | 0.2614 | model_form_blend |
| predicted_BB | 0.2910 | 0.2780 | 0.2854 | model_form_blend |
| predicted_H | 0.8290 | 0.8840 | 0.8526 | model_form_blend |
| predicted_HBP | - | 0.0020 | 0.0020 | form_only |
| predicted_HR | 0.0770 | 0.0550 | 0.0675 | model_form_blend |
| predicted_OBP | 0.3270 | 0.3115 | 0.3203 | model_form_blend |
| predicted_R | 0.4020 | 0.3600 | 0.3839 | model_form_blend |
| predicted_RBI | 0.3930 | 0.3540 | 0.3762 | model_form_blend |
| predicted_SLG | 0.3950 | 0.3566 | 0.3785 | model_form_blend |
| predicted_SO | 0.7180 | 1.0630 | 0.8663 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 408 |
| Season rows before report date | 408 |
| Report year | 2026 |
| Profile rows used | 117 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 9 |
| Hitting_substitutionOrder | 2 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | PR |
| gameID | 20261004_SD@MIL |
| game_type | ph |
| mlbID | 687401 |
| note | Ran for Sánchez in the 9th. |
| playerID | 687401 |
| playerName | Joey Ortiz |
| pos | SS |
| started | False |
| startingPosition | PR |
| team | MIL |
| teamID | 16 |
| game_date | 2026-10-04 |
| sl_k_percent | 19.8 |
| sl_bb_percent | 8.4 |
| sl_woba | 0.321 |
| sl_xwoba | 0.297 |
| sl_xba | 0.243 |
| sl_xslg | 0.346 |
| sl_sweet_spot_percent | 29.2 |
| sl_barrel_batted_rate | 4.0 |
| sl_hard_hit_percent | 37.6 |
| sl_exit_velocity_avg | 89.2 |
| sl_launch_angle_avg | 6.4 |
| sl_whiff_percent | 19.9 |
| sl_swing_percent | 44.8 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 2.000 | 2.000 | 2.000 | Pitching_BB | 1.500 | 1.000 | 0.500 | 1.000 |
| predicted_ER | 5.000 | 5.000 | 5.000 | Pitching_ER | 2.300 | 2.000 | 2.700 | 3.000 |
| predicted_H | 8.000 | 8.000 | 8.000 | Pitching_H | 3.700 | 3.000 | 4.300 | 5.000 |
| predicted_IP | 4.000 | 4.000 | 4.000 | Pitching_InningsPitched | 3.550 | 3.000 | 0.450 | 1.000 |
| predicted_SO | 4.000 | 4.000 | 4.000 | Pitching_SO | 3.800 | 5.000 | 0.200 | -1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_rate_projection |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 5 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 2 |
| Better Metrics | 2 |
| Worse Metrics | 3 |
| Biggest Boost | predicted_H: 4.0000 -> 8.0000 (boost 4.0000, worse) |
| Biggest Deboost | predicted_HR: 1.0000 -> 0.0000 (deboost -1.0000, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_rate_projection | 0 | 0 | 0 | 0 | 0 | - | - | Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty |
| 2 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 3 | team_form_adjustment | 0 | 0 | 0 | 0 | 0 | - | - | Club form: innings, run prevention and strikeout factors |
| 4 | savant_pitcher_quality | 0 | 0 | 0 | 0 | 0 | - | - | Statcast pitch quality: strikeout, walk, home-run and run-prevention factors |
| 5 | opposing_lineup_context | 0 | 0 | 0 | 0 | 0 | - | - | The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances |
| 6 | kpi_run_environment | 0 | 0 | 0 | 0 | 0 | - | - | KPI blend published; the staff line follows the published score, not a KPI rescale |
| 7 | play_by_play_realization | 5 | 3 | 2 | 2 | 3 | predicted_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 |
| 8 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
| Metric | Value | Delta vs Prev Step |
|---|
Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 2.000 | - |
| predicted_ER | 4.000 | - |
| predicted_H | 4.000 | - |
| predicted_HR | 1.000 | - |
| predicted_IP | 4.333 | - |
| predicted_SO | 1.000 | - |
Club form: innings, run prevention and strikeout factors
| Metric | Value | Delta vs Prev Step |
|---|
Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
| Metric | Value | Delta vs Prev Step |
|---|
The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances
| Metric | Value | Delta vs Prev Step |
|---|
KPI blend published; the staff line follows the published score, not a KPI rescale
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| BB | 2.000 | - |
| BF | 22.000 | - |
| ER | 5.000 | - |
| H | 8.000 | - |
| HR | 0.000 | - |
| IP | 4.000 | - |
| Pitches | 89.000 | - |
| R | 5.000 | - |
| SO | 4.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 17.000 | 9.000 | 17.000 | 5.000 | 22.000 | 4.000 | 4.7647 | 1.2941 | 0.5294 | 1.0000 | 0.2941 | 1.2941 | 0.2353 |
| last_10 | 0.35 | 10 | 36.200 | 23.000 | 37.000 | 15.000 | 38.000 | 7.000 | 5.6455 | 1.4182 | 0.6273 | 1.0091 | 0.4091 | 1.0364 | 0.1909 |
| season | 0.20 | 31 | 145.200 | 76.000 | 142.000 | 50.000 | 144.000 | 14.000 | 4.6957 | 1.3181 | 0.5217 | 0.9748 | 0.3432 | 0.9886 | 0.0961 |
| Metric | Value |
|---|---|
| predicted_BB | 1.3280 |
| predicted_ER | 2.1110 |
| predicted_ERA | 4.9978 |
| predicted_H | 3.7880 |
| predicted_HR | 0.7060 |
| predicted_IP | 3.2000 |
| predicted_SO | 4.2350 |
| predicted_WHIP | 1.3455 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 2.0000 | 1.3280 | 1.6026 | model_form_blend |
| predicted_ER | 4.0000 | 2.1110 | 2.8830 | model_form_blend |
| predicted_ERA | - | 4.9978 | 4.9978 | form_only |
| predicted_H | 4.0000 | 3.7880 | 3.8746 | model_form_blend |
| predicted_HR | 1.0000 | 0.7060 | 0.8262 | model_form_blend |
| predicted_IP | 4.1000 | 3.2000 | 4.0000 | model_form_blend |
| predicted_SO | 1.0000 | 4.2350 | 2.9129 | model_form_blend |
| predicted_WHIP | - | 1.3455 | 1.3455 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 10 |
| Season rows before report date | 10 |
| Report year | 2026 |
| Profile rows used | 31 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 4.0 |
| H | 8 |
| R | 5 |
| ER | 5 |
| BB | 2 |
| SO | 4 |
| HR | 0 |
| BF | 22 |
| Pitches | 89 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 1 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 13 |
| Pitching_ER | 2 |
| Pitching_ERA | 4.70 |
| Pitching_Flyouts | 2 |
| Pitching_Groundouts | 0 |
| Pitching_H | 3 |
| Pitching_HBP | 0 |
| Pitching_HR | 1 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 3.0 |
| Pitching_Pitches | 58 |
| Pitching_R | 2 |
| Pitching_SO | 5 |
| Pitching_Strikes | 38 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 1 |
| allPositionsPlayed | P |
| gameID | 20260926_STL@MIL |
| game_type | full |
| mlbID | 669160 |
| playerID | 669160 |
| playerName | Dustin May |
| pos | P |
| started | True |
| startingPosition | P |
| team | MIL |
| teamID | 16 |
| game_date | 2026-09-26 |
| sl_k_percent | 23.2 |
| sl_bb_percent | 8.1 |
| sl_woba | 0.317 |
| sl_xwoba | 0.323 |
| sl_sweet_spot_percent | 36.1 |
| sl_barrel_batted_rate | 7.8 |
| sl_hard_hit_percent | 44.3 |
| sl_whiff_percent | 23.0 |
| sl_swing_percent | 47.6 |
| sl_avg_best_speed | 79.285414951 |
| sl_avg_hyper_speed | 94.649461397 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.250 | 1.000 | -0.250 | -1.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.417 | 0.000 | -0.417 | 0.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.917 | 0.000 | 0.083 | 1.000 |
| predicted_IP | 1.000 | 1.000 | 1.000 | Pitching_InningsPitched | 0.875 | 0.200 | 0.125 | 0.800 |
| predicted_SO | 1.000 | 1.000 | 1.000 | Pitching_SO | 1.083 | 2.000 | -0.083 | -1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_rate_projection |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 1 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 0 |
| Better Metrics | 0 |
| Worse Metrics | 1 |
| Biggest Boost | predicted_H: 0.0000 -> 1.0000 (boost 1.0000, worse) |
| Biggest Deboost | - |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_rate_projection | 0 | 0 | 0 | 0 | 0 | - | - | Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty |
| 2 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 3 | team_form_adjustment | 0 | 0 | 0 | 0 | 0 | - | - | Club form: innings, run prevention and strikeout factors |
| 4 | savant_pitcher_quality | 0 | 0 | 0 | 0 | 0 | - | - | Statcast pitch quality: strikeout, walk, home-run and run-prevention factors |
| 5 | opposing_lineup_context | 0 | 0 | 0 | 0 | 0 | - | - | The nine hitters he faces: batter quality, weighted by plate appearances |
| 6 | kpi_run_environment | 0 | 0 | 0 | 0 | 0 | - | - | KPI blend published; the staff line follows the published score, not a KPI rescale |
| 7 | play_by_play_realization | 1 | 1 | 0 | 0 | 1 | predicted_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 |
| 8 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
| Metric | Value | Delta vs Prev Step |
|---|
Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 0.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 1.000 | - |
Club form: innings, run prevention and strikeout factors
| Metric | Value | Delta vs Prev Step |
|---|
Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
| Metric | Value | Delta vs Prev Step |
|---|
The nine hitters he faces: batter quality, weighted by plate appearances
| Metric | Value | Delta vs Prev Step |
|---|
KPI blend published; the staff line follows the published score, not a KPI rescale
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| BB | 0.000 | - |
| BF | 5.000 | - |
| ER | 0.000 | - |
| H | 1.000 | - |
| HR | 0.000 | - |
| IP | 1.000 | - |
| Pitches | 14.000 | - |
| R | 0.000 | - |
| SO | 1.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 6.100 | 0.000 | 2.000 | 1.000 | 8.000 | 0.000 | 0.0000 | 0.4737 | 0.0000 | 0.3158 | 0.1579 | 1.2632 | 0.0000 |
| last_10 | 0.35 | 10 | 12.100 | 5.000 | 9.000 | 3.000 | 12.000 | 2.000 | 3.6486 | 0.9730 | 0.4054 | 0.7297 | 0.2432 | 0.9730 | 0.1622 |
| season | 0.20 | 56 | 57.000 | 21.000 | 51.000 | 19.000 | 56.000 | 7.000 | 3.3158 | 1.2281 | 0.3684 | 0.8947 | 0.3333 | 0.9825 | 0.1228 |
| Metric | Value |
|---|---|
| predicted_BB | 0.3200 |
| predicted_ER | 0.3610 |
| predicted_ERA | 2.7381 |
| predicted_H | 0.8290 |
| predicted_HR | 0.1200 |
| predicted_IP | 1.1000 |
| predicted_SO | 1.2520 |
| predicted_WHIP | 0.9680 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.3200 | 0.1677 | model_form_blend |
| predicted_ER | 0.0000 | 0.3610 | 0.1892 | model_form_blend |
| predicted_ERA | - | 2.7381 | 2.7381 | form_only |
| predicted_H | 0.0000 | 0.8290 | 0.4344 | model_form_blend |
| predicted_HR | 0.0000 | 0.1200 | 0.0629 | model_form_blend |
| predicted_IP | 1.0000 | 1.1000 | 1.2000 | model_form_blend |
| predicted_SO | 1.0000 | 1.2520 | 1.1321 | model_form_blend |
| predicted_WHIP | - | 0.9680 | 0.9680 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 12 |
| Season rows before report date | 12 |
| Report year | 2026 |
| Profile rows used | 56 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.0 |
| H | 1 |
| R | 0 |
| ER | 0 |
| BB | 0 |
| SO | 1 |
| HR | 0 |
| BF | 5 |
| Pitches | 14 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 1 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 3 |
| Pitching_ER | 0 |
| Pitching_ERA | 0.00 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 1 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.2 |
| Pitching_Pitches | 15 |
| Pitching_R | 0 |
| Pitching_SO | 2 |
| Pitching_Strikes | 7 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 2 |
| allPositionsPlayed | P |
| gameID | 20261004_SD@MIL |
| game_type | full |
| mlbID | 668941 |
| playerID | 668941 |
| playerName | JoJo Romero |
| pos | P |
| started | False |
| startingPosition | P |
| team | MIL |
| teamID | 16 |
| game_date | 2026-10-04 |
| sl_k_percent | 22.7 |
| sl_bb_percent | 7.6 |
| sl_woba | 0.305 |
| sl_xwoba | 0.323 |
| sl_sweet_spot_percent | 34.0 |
| sl_barrel_batted_rate | 7.5 |
| sl_hard_hit_percent | 38.9 |
| sl_whiff_percent | 22.1 |
| sl_swing_percent | 41.8 |
| sl_avg_best_speed | 79.261308481 |
| sl_avg_hyper_speed | 94.932814051 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.417 | 1.000 | -0.417 | -1.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.500 | 0.000 | -0.500 | 0.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 1.000 | 2.000 | 0.000 | -1.000 |
| predicted_IP | 3.000 | 3.000 | 3.000 | Pitching_InningsPitched | 0.708 | 0.200 | 2.292 | 2.800 |
| predicted_SO | 2.000 | 2.000 | 2.000 | Pitching_SO | 0.583 | 0.000 | 1.417 | 2.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_rate_projection |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 5 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 3 |
| Better Metrics | 5 |
| Worse Metrics | 0 |
| Biggest Boost | predicted_IP: 0.1000 -> 3.0000 (boost 2.9000, better) |
| Biggest Deboost | predicted_H: 3.0000 -> 1.0000 (deboost -2.0000, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_rate_projection | 0 | 0 | 0 | 0 | 0 | - | - | Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty |
| 2 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 3 | team_form_adjustment | 0 | 0 | 0 | 0 | 0 | - | - | Club form: innings, run prevention and strikeout factors |
| 4 | savant_pitcher_quality | 0 | 0 | 0 | 0 | 0 | - | - | Statcast pitch quality: strikeout, walk, home-run and run-prevention factors |
| 5 | opposing_lineup_context | 0 | 0 | 0 | 0 | 0 | - | - | The nine hitters he faces: batter quality, weighted by plate appearances |
| 6 | kpi_run_environment | 0 | 0 | 0 | 0 | 0 | - | - | KPI blend published; the staff line follows the published score, not a KPI rescale |
| 7 | play_by_play_realization | 5 | 2 | 3 | 5 | 0 | predicted_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 |
| 8 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
| Metric | Value | Delta vs Prev Step |
|---|
Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | - |
| predicted_ER | 1.000 | - |
| predicted_H | 3.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 0.100 | - |
| predicted_SO | 1.000 | - |
Club form: innings, run prevention and strikeout factors
| Metric | Value | Delta vs Prev Step |
|---|
Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
| Metric | Value | Delta vs Prev Step |
|---|
The nine hitters he faces: batter quality, weighted by plate appearances
| Metric | Value | Delta vs Prev Step |
|---|
KPI blend published; the staff line follows the published score, not a KPI rescale
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| BB | 0.000 | - |
| BF | 10.000 | - |
| ER | 0.000 | - |
| H | 1.000 | - |
| HR | 0.000 | - |
| IP | 3.000 | - |
| Pitches | 37.000 | - |
| R | 0.000 | - |
| SO | 2.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 4.100 | 0.000 | 5.000 | 2.000 | 2.000 | 0.000 | 0.0000 | 1.6154 | 0.0000 | 1.1539 | 0.4615 | 0.4615 | 0.0000 |
| last_10 | 0.35 | 10 | 8.000 | 5.000 | 10.000 | 4.000 | 6.000 | 1.000 | 5.6250 | 1.7500 | 0.6250 | 1.2500 | 0.5000 | 0.7500 | 0.1250 |
| season | 0.20 | 58 | 74.000 | 33.000 | 75.000 | 27.000 | 60.000 | 6.000 | 4.0135 | 1.3784 | 0.4460 | 1.0135 | 0.3649 | 0.8108 | 0.0811 |
| Metric | Value |
|---|---|
| predicted_BB | 0.3490 |
| predicted_ER | 0.2860 |
| predicted_ERA | 3.2264 |
| predicted_H | 0.8910 |
| predicted_HR | 0.0650 |
| predicted_IP | 0.2000 |
| predicted_SO | 0.5640 |
| predicted_WHIP | 1.5535 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 1.0000 | 0.3490 | 0.6446 | model_form_blend |
| predicted_ER | 1.0000 | 0.2860 | 0.6103 | model_form_blend |
| predicted_ERA | - | 3.2264 | 3.2264 | form_only |
| predicted_H | 3.0000 | 0.8910 | 1.8488 | model_form_blend |
| predicted_HR | 0.0000 | 0.0650 | 0.0355 | model_form_blend |
| predicted_IP | 0.1000 | 0.2000 | 0.2000 | model_form_blend |
| predicted_SO | 1.0000 | 0.5640 | 0.7620 | model_form_blend |
| predicted_WHIP | - | 1.5535 | 1.5535 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 24 |
| Season rows before report date | 24 |
| Report year | 2026 |
| Profile rows used | 58 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 3.0 |
| H | 1 |
| R | 0 |
| ER | 0 |
| BB | 0 |
| SO | 2 |
| HR | 0 |
| BF | 10 |
| Pitches | 37 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 1 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 4 |
| Pitching_ER | 0 |
| Pitching_ERA | 0.00 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 1 |
| Pitching_H | 2 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.2 |
| Pitching_Pitches | 11 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 6 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 2 |
| allPositionsPlayed | P |
| gameID | 20261003_SD@MIL |
| game_type | full |
| mlbID | 622608 |
| playerID | 622608 |
| playerName | Antonio Senzatela |
| pos | P |
| started | False |
| startingPosition | P |
| team | MIL |
| teamID | 16 |
| game_date | 2026-10-03 |
| sl_k_percent | 19.3 |
| sl_bb_percent | 8.4 |
| sl_woba | 0.31 |
| sl_xwoba | 0.31 |
| sl_sweet_spot_percent | 32.3 |
| sl_barrel_batted_rate | 6.3 |
| sl_hard_hit_percent | 40.4 |
| sl_whiff_percent | 23.5 |
| sl_swing_percent | 49.4 |
| sl_avg_best_speed | 77.021888727 |
| sl_avg_hyper_speed | 94.288859455 |
| Field | Value |
|---|---|
| Pitcher | Nick Pivetta |
| Role | Starter |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.1561 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | -0.0365 |
| Avg Velo | 89.2121 |
| Avg Spin | 2437.1932 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 4 |
| Pre ER | 3 |
| Pre H | 4 |
| Pre BB | 1 |
| Pre SO | 2 |
| Season ERA | 2.8421 |
| Season WHIP | 1.0526 |
| Role Avg IP | 4.2220 |
| Recent Avg IP | 4.4000 |
| Last Start IP | 3.1000 |
{
"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"
}{
"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"
}{
"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."
}{
"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
}
}{
"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"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Bradgley Rodriguez |
| Role | Middle Reliever (High Leverage) |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 1.0127 |
| ESPN Rank | - |
| Movement Available | False |
| Primary Pitch | - |
| Movement Score | - |
| Avg Velo | - |
| Avg Spin | - |
| HB Inches | - |
| IVB Inches | - |
| Release Extension | - |
| Pre IP | 1.1000 |
| Pre ER | 0 |
| Pre H | 2 |
| Pre BB | 1 |
| Pre SO | 1 |
| Season ERA | 1.6223 |
| Season WHIP | 0.9528 |
| Role Avg IP | 1.1330 |
| Recent Avg IP | 1.5330 |
| Last Start IP | 0 |
{
"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"
}{
"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"
}{
"available": false,
"pitcher_id": "699134",
"reason": "pitcher_movement_profile_has_no_pitches"
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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
}
}{
"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"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Adrian Morejon |
| Role | Middle Reliever (High Leverage) |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 1.1536 |
| ESPN Rank | - |
| Movement Available | False |
| Primary Pitch | - |
| Movement Score | - |
| Avg Velo | - |
| Avg Spin | - |
| HB Inches | - |
| IVB Inches | - |
| Release Extension | - |
| Pre IP | 1.1000 |
| Pre ER | 1 |
| Pre H | 1 |
| Pre BB | 0 |
| Pre SO | 1 |
| Season ERA | 2.8000 |
| Season WHIP | 1.0778 |
| Role Avg IP | 1.1540 |
| Recent Avg IP | 1.4670 |
| Last Start IP | 0 |
{
"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"
}{
"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"
}{
"available": false,
"pitcher_id": "670970",
"reason": "pitcher_movement_profile_has_no_pitches"
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.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
}
}{
"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"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Jason Adam |
| Role | Setup Man |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.0599 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | -0.1391 |
| Avg Velo | 87.3795 |
| Avg Spin | 2393.0679 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 1 |
| Pre ER | 0 |
| Pre H | 0 |
| Pre BB | 1 |
| Pre SO | 1 |
| Season ERA | 2.4771 |
| Season WHIP | 1.1284 |
| Role Avg IP | 0.9080 |
| Recent Avg IP | 1 |
| Last Start IP | 0 |
{
"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"
}{
"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"
}{
"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."
}{
"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
}
}{
"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"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Mason Miller |
| Role | Closer |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 1.4216 |
| ESPN Rank | - |
| Movement Available | False |
| Primary Pitch | - |
| Movement Score | - |
| Avg Velo | - |
| Avg Spin | - |
| HB Inches | - |
| IVB Inches | - |
| Release Extension | - |
| Pre IP | 1.1000 |
| Pre ER | 0 |
| Pre H | 1 |
| Pre BB | 0 |
| Pre SO | 0 |
| Season ERA | 1.8578 |
| Season WHIP | 0.9358 |
| Role Avg IP | 1.0690 |
| Recent Avg IP | 1.1330 |
| Last Start IP | 0 |
{
"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"
}{
"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"
}{
"available": false,
"pitcher_id": "695243",
"reason": "pitcher_movement_profile_has_no_pitches"
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 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
}
}{
"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"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.199 | 0.000 | 0.000 | Hitting_2B | 0.214 | 0.000 | -0.214 | 0.000 |
| predicted_3B | 0.019 | 0.000 | 0.000 | Hitting_3B | 0.021 | 0.000 | -0.021 | 0.000 |
| predicted_AB | 5.270 | 5.000 | 5.000 | Hitting_AB | 4.047 | 5.000 | 0.953 | 0.000 |
| predicted_AVG | 0.250 | 0.200 | 0.200 | Hitting_AVG | 0.291 | 0.000 | -0.091 | 0.200 |
| predicted_BB | 0.391 | 0.000 | 0.000 | Hitting_BB | 0.409 | 0.000 | -0.409 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.085 | 0.000 | -0.085 | 0.000 |
| predicted_H | 1.320 | 1.000 | 1.000 | Hitting_H | 1.180 | 0.000 | -0.180 | 1.000 |
| predicted_HR | 0.240 | 0.000 | 0.000 | Hitting_HR | 0.165 | 0.000 | -0.165 | 0.000 |
| predicted_OBP | 0.325 | 0.200 | 0.200 | Hitting_OBP | 0.360 | 0.000 | -0.160 | 0.200 |
| predicted_R | 0.615 | 1.000 | 1.000 | Hitting_R | 0.636 | 1.000 | 0.364 | 0.000 |
| predicted_RBI | 0.550 | 1.000 | 1.000 | Hitting_RBI | 0.550 | 0.000 | 0.450 | 1.000 |
| predicted_SLG | 0.446 | 0.200 | 0.200 | Hitting_SLG | 0.477 | 0.000 | -0.277 | 0.200 |
| predicted_SO | 0.839 | 1.000 | 1.000 | Hitting_SO | 0.846 | 1.000 | 0.154 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 7 |
| Better Metrics | 2 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_RBI: 0.5500 -> 1.0000 (boost 0.4500, better) |
| Biggest Deboost | predicted_BB: 0.3910 -> 0.0000 (deboost -0.3910, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 2 | 0 | 2 | 0 | 2 | - | predicted_AB: 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. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 1 | 6 | 0 | 7 | predicted_SO: 0.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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=29.0, weight=0.197, BvP AVG=0.241) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.6267 -> 1.0000 (boost 0.3733, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 5 | 4 | 1 | 5 | 0 | predicted_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 |
| 9 | lineup_integer_allocation | 8 | 6 | 2 | 5 | 3 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 12 | play_by_play_realization | 3 | 1 | 2 | 1 | 2 | predicted_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 |
| 13 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 14 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.199 | - |
| predicted_3B | 0.019 | - |
| predicted_AB | 5.270 | - |
| predicted_AVG | 0.250 | - |
| predicted_BB | 0.391 | - |
| predicted_H | 1.320 | - |
| predicted_HR | 0.240 | - |
| predicted_OBP | 0.325 | - |
| predicted_R | 0.615 | - |
| predicted_RBI | 0.550 | - |
| predicted_SLG | 0.446 | - |
| predicted_SO | 0.839 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.183 | -0.016 |
| predicted_3B | 0.015 | -0.003 |
| predicted_AB | 4.725 | -0.545 |
| predicted_AVG | 0.254 | 0.004 |
| predicted_BB | 0.382 | -0.009 |
| predicted_H | 1.200 | -0.120 |
| predicted_HBP | 0.027 | - |
| predicted_HR | 0.211 | -0.028 |
| predicted_OBP | 0.325 | -0.000 |
| predicted_R | 0.651 | 0.036 |
| predicted_RBI | 0.515 | -0.035 |
| predicted_SLG | 0.442 | -0.004 |
| predicted_SO | 0.857 | 0.018 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.183 | 0.000 |
| predicted_3B | 0.015 | 0.000 |
| predicted_AB | 4.725 | 0.000 |
| predicted_AVG | 0.248 | -0.006 |
| predicted_BB | 0.380 | -0.002 |
| predicted_H | 1.173 | -0.027 |
| predicted_HBP | 0.027 | 0.000 |
| predicted_HR | 0.205 | -0.006 |
| predicted_OBP | 0.304 | -0.021 |
| predicted_R | 0.627 | -0.025 |
| predicted_RBI | 0.496 | -0.019 |
| predicted_SLG | 0.424 | -0.018 |
| predicted_SO | 0.863 | 0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=5.27), rates preserved: AVG=0.226 HR/AB=0.039
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=29.0, weight=0.197, BvP AVG=0.241)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.155 | 0.155 |
| 3B | 0.011 | 0.011 |
| BB | 0.395 | 0.395 |
| H | 1.029 | 0.029 |
| HR | 0.146 | 0.146 |
| RBI | 0.488 | 0.488 |
| SO | 0.893 | -0.107 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.845 |
| 3B | 0.000 | -0.011 |
| AB | 4.000 | 0.000 |
| AVG | 0.255 | - |
| BB | 1.000 | 0.605 |
| H | 1.000 | -0.029 |
| HR | 0.000 | -0.146 |
| OBP | 0.327 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.512 |
| SLG | 0.408 | - |
| SO | 1.000 | 0.107 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 1.000 | 0.817 |
| predicted_3B | 0.000 | -0.015 |
| predicted_AB | 4.000 | -0.725 |
| predicted_AVG | 0.255 | 0.007 |
| predicted_BB | 1.000 | 0.621 |
| predicted_H | 1.000 | -0.173 |
| predicted_HR | 0.000 | -0.205 |
| predicted_OBP | 0.327 | 0.023 |
| predicted_R | 1.000 | 0.373 |
| predicted_RBI | 1.000 | 0.504 |
| predicted_SLG | 0.408 | -0.016 |
| predicted_SO | 1.000 | 0.137 |
KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.246 | -0.009 |
| BB | 1.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.317 | -0.010 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SLG | 0.394 | -0.014 |
| SO | 1.000 | 0.000 |
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -1.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | -1.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | 0.000 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 21.000 | 3.000 | 0.000 | 0.000 | 1.000 | 2.000 | 5.000 | 2.000 | 5.000 | 0.1429 | 0.2174 | 0.2857 | 0.1429 | 0.0476 | 0.0952 | 0.0952 | 0.2381 |
| last_10 | 0.20 | 10 | - | 40.000 | 12.000 | 2.000 | 0.000 | 2.000 | 4.000 | 7.000 | 3.000 | 9.000 | 0.3000 | 0.3488 | 0.5000 | 0.3000 | 0.0500 | 0.1000 | 0.0750 | 0.2250 |
| season | 0.60 | 161 | - | 643.000 | 184.000 | 32.000 | 3.000 | 26.000 | 83.000 | 99.000 | 63.000 | 135.000 | 0.2862 | 0.3538 | 0.4666 | 0.2862 | 0.0404 | 0.1291 | 0.0980 | 0.2099 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1620 |
| predicted_3B | 0.0110 |
| predicted_AB | 4.0270 |
| predicted_AVG | 0.2598 |
| predicted_BB | 0.3700 |
| predicted_H | 1.0460 |
| predicted_HBP | 0.0270 |
| predicted_HR | 0.1750 |
| predicted_OBP | 0.3247 |
| predicted_R | 0.6980 |
| predicted_RBI | 0.4710 |
| predicted_SLG | 0.4359 |
| predicted_SO | 0.8810 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1990 | 0.1620 | 0.1828 | model_form_blend |
| predicted_3B | 0.0190 | 0.0110 | 0.0155 | model_form_blend |
| predicted_AB | 5.2700 | 4.0270 | 4.7252 | model_form_blend |
| predicted_AVG | 0.2500 | 0.2598 | 0.2543 | model_form_blend |
| predicted_BB | 0.3910 | 0.3700 | 0.3818 | model_form_blend |
| predicted_H | 1.3200 | 1.0460 | 1.1999 | model_form_blend |
| predicted_HBP | - | 0.0270 | 0.0270 | form_only |
| predicted_HR | 0.2400 | 0.1750 | 0.2115 | model_form_blend |
| predicted_OBP | 0.3250 | 0.3247 | 0.3249 | model_form_blend |
| predicted_R | 0.6150 | 0.6980 | 0.6514 | model_form_blend |
| predicted_RBI | 0.5500 | 0.4710 | 0.5154 | model_form_blend |
| predicted_SLG | 0.4460 | 0.4359 | 0.4416 | model_form_blend |
| predicted_SO | 0.8390 | 0.8810 | 0.8574 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 674 |
| Season rows before report date | 674 |
| Report year | 2026 |
| Profile rows used | 161 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 1 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 5 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 1 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | RF |
| gameID | 20261004_SD@MIL |
| game_type | full |
| mlbID | 665487 |
| playerID | 665487 |
| playerName | Fernando Tatis Jr. |
| pos | RF |
| started | True |
| startingPosition | RF |
| team | SD |
| teamID | 23 |
| game_date | 2026-10-04 |
| sl_k_percent | 18.5 |
| sl_bb_percent | 9.1 |
| sl_woba | 0.358 |
| sl_xwoba | 0.379 |
| sl_xba | 0.296 |
| sl_xslg | 0.5 |
| sl_sweet_spot_percent | 32.2 |
| sl_barrel_batted_rate | 12.7 |
| sl_hard_hit_percent | 53.9 |
| sl_exit_velocity_avg | 92.9 |
| sl_launch_angle_avg | 5.3 |
| sl_whiff_percent | 25.9 |
| sl_swing_percent | 46.1 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.161 | 1.000 | 1.000 | Hitting_2B | 0.169 | 0.000 | 0.831 | 1.000 |
| predicted_3B | 0.031 | 0.000 | 0.000 | Hitting_3B | 0.036 | 0.000 | -0.036 | 0.000 |
| predicted_AB | 5.400 | 4.000 | 4.000 | Hitting_AB | 4.002 | 4.000 | -0.002 | 0.000 |
| predicted_AVG | 0.260 | 0.250 | 0.250 | Hitting_AVG | 0.265 | 0.250 | -0.015 | 0.000 |
| predicted_BB | 0.261 | 0.000 | 0.000 | Hitting_BB | 0.276 | 0.000 | -0.276 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.026 | 0.000 | -0.026 | 0.000 |
| predicted_H | 1.410 | 1.000 | 1.000 | Hitting_H | 1.059 | 1.000 | -0.059 | 0.000 |
| predicted_HR | 0.130 | 0.000 | 0.000 | Hitting_HR | 0.175 | 0.000 | -0.175 | 0.000 |
| predicted_OBP | 0.310 | 0.250 | 0.250 | Hitting_OBP | 0.314 | 0.250 | -0.064 | 0.000 |
| predicted_R | 0.540 | 0.000 | 0.000 | Hitting_R | 0.578 | 0.000 | -0.578 | 0.000 |
| predicted_RBI | 0.640 | 1.000 | 1.000 | Hitting_RBI | 0.604 | 0.000 | 0.396 | 1.000 |
| predicted_SLG | 0.408 | 0.500 | 0.500 | Hitting_SLG | 0.456 | 0.250 | 0.044 | 0.250 |
| predicted_SO | 1.025 | 2.000 | 2.000 | Hitting_SO | 1.014 | 1.000 | 0.986 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 8 |
| Better Metrics | 2 |
| Worse Metrics | 9 |
| Biggest Boost | predicted_SO: 1.0250 -> 2.0000 (boost 0.9750, worse) |
| Biggest Deboost | predicted_AB: 5.4000 -> 4.0000 (deboost -1.4000, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 6 | 2 | 4 | 2 | 4 | predicted_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. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 0 | 7 | 1 | 6 | - | predicted_AB: 4.7436 -> 4.0000 (deboost -0.7436, worse) | AB rounded to 4 (raw=5.40), rates preserved: AVG=0.232 HR/AB=0.021 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=10.0, weight=0.100, BvP AVG=0.000) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5288 -> 1.0000 (boost 0.4712, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_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 |
| 9 | lineup_integer_allocation | 9 | 3 | 6 | 4 | 5 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 12 | play_by_play_realization | 3 | 2 | 1 | 1 | 2 | predicted_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 |
| 13 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 14 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.161 | - |
| predicted_3B | 0.031 | - |
| predicted_AB | 5.400 | - |
| predicted_AVG | 0.260 | - |
| predicted_BB | 0.261 | - |
| predicted_H | 1.410 | - |
| predicted_HR | 0.130 | - |
| predicted_OBP | 0.310 | - |
| predicted_R | 0.540 | - |
| predicted_RBI | 0.640 | - |
| predicted_SLG | 0.408 | - |
| predicted_SO | 1.025 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.143 | -0.018 |
| predicted_3B | 0.025 | -0.006 |
| predicted_AB | 4.744 | -0.656 |
| predicted_AVG | 0.267 | 0.007 |
| predicted_BB | 0.267 | 0.006 |
| predicted_H | 1.262 | -0.148 |
| predicted_HBP | 0.012 | - |
| predicted_HR | 0.116 | -0.014 |
| predicted_OBP | 0.316 | 0.006 |
| predicted_R | 0.550 | 0.010 |
| predicted_RBI | 0.583 | -0.057 |
| predicted_SLG | 0.401 | -0.007 |
| predicted_SO | 1.059 | 0.034 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.143 | 0.000 |
| predicted_3B | 0.025 | 0.000 |
| predicted_AB | 4.744 | 0.000 |
| predicted_AVG | 0.260 | -0.007 |
| predicted_BB | 0.266 | -0.002 |
| predicted_H | 1.234 | -0.028 |
| predicted_HBP | 0.012 | 0.000 |
| predicted_HR | 0.113 | -0.003 |
| predicted_OBP | 0.299 | -0.017 |
| predicted_R | 0.529 | -0.021 |
| predicted_RBI | 0.561 | -0.022 |
| predicted_SLG | 0.372 | -0.028 |
| predicted_SO | 1.065 | 0.006 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=5.40), rates preserved: AVG=0.232 HR/AB=0.021
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=10.0, weight=0.100, BvP AVG=0.000)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.148 | 0.148 |
| 3B | 0.016 | 0.016 |
| BB | 0.316 | 0.316 |
| H | 0.925 | -0.075 |
| HR | 0.147 | 0.147 |
| RBI | 0.512 | 0.512 |
| SO | 1.111 | 0.111 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.148 |
| 3B | 0.000 | -0.016 |
| AB | 4.000 | 0.000 |
| AVG | 0.232 | - |
| BB | 0.000 | -0.316 |
| H | 1.000 | 0.075 |
| HR | 0.000 | -0.147 |
| OBP | 0.294 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.488 |
| SLG | 0.388 | - |
| SO | 1.000 | -0.111 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.143 |
| predicted_3B | 0.000 | -0.025 |
| predicted_AB | 4.000 | -0.744 |
| predicted_AVG | 0.232 | -0.028 |
| predicted_BB | 0.000 | -0.266 |
| predicted_H | 1.000 | -0.234 |
| predicted_HR | 0.000 | -0.113 |
| predicted_OBP | 0.294 | -0.005 |
| predicted_R | 1.000 | 0.471 |
| predicted_RBI | 1.000 | 0.439 |
| predicted_SLG | 0.388 | 0.016 |
| predicted_SO | 1.000 | -0.065 |
KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.224 | -0.008 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.285 | -0.009 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SLG | 0.374 | -0.014 |
| SO | 1.000 | 0.000 |
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 1.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | -1.000 |
| RBI | 1.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 2.000 | 1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 2.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 20.000 | 7.000 | 0.000 | 0.000 | 0.000 | 3.000 | 3.000 | 2.000 | 7.000 | 0.3500 | 0.4091 | 0.3500 | 0.3500 | 0.0000 | 0.1500 | 0.1000 | 0.3500 |
| last_10 | 0.20 | 10 | - | 38.000 | 10.000 | 1.000 | 0.000 | 0.000 | 3.000 | 6.000 | 2.000 | 11.000 | 0.2632 | 0.3000 | 0.2895 | 0.2632 | 0.0000 | 0.0790 | 0.0526 | 0.2895 |
| season | 0.60 | 161 | - | 629.000 | 161.000 | 26.000 | 5.000 | 26.000 | 89.000 | 87.000 | 42.000 | 165.000 | 0.2560 | 0.3043 | 0.4372 | 0.2560 | 0.0413 | 0.1415 | 0.0668 | 0.2623 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1200 |
| predicted_3B | 0.0180 |
| predicted_AB | 3.9000 |
| predicted_AVG | 0.2750 |
| predicted_BB | 0.2750 |
| predicted_H | 1.0720 |
| predicted_HBP | 0.0120 |
| predicted_HR | 0.0980 |
| predicted_OBP | 0.3236 |
| predicted_R | 0.5620 |
| predicted_RBI | 0.5090 |
| predicted_SLG | 0.3909 |
| predicted_SO | 1.1020 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1610 | 0.1200 | 0.1431 | model_form_blend |
| predicted_3B | 0.0310 | 0.0180 | 0.0253 | model_form_blend |
| predicted_AB | 5.4000 | 3.9000 | 4.7436 | model_form_blend |
| predicted_AVG | 0.2600 | 0.2750 | 0.2666 | model_form_blend |
| predicted_BB | 0.2610 | 0.2750 | 0.2671 | model_form_blend |
| predicted_H | 1.4100 | 1.0720 | 1.2621 | model_form_blend |
| predicted_HBP | - | 0.0120 | 0.0120 | form_only |
| predicted_HR | 0.1300 | 0.0980 | 0.1160 | model_form_blend |
| predicted_OBP | 0.3100 | 0.3236 | 0.3160 | model_form_blend |
| predicted_R | 0.5400 | 0.5620 | 0.5496 | model_form_blend |
| predicted_RBI | 0.6400 | 0.5090 | 0.5827 | model_form_blend |
| predicted_SLG | 0.4080 | 0.3909 | 0.4005 | model_form_blend |
| predicted_SO | 1.0250 | 1.1020 | 1.0587 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 644 |
| Season rows before report date | 644 |
| Report year | 2026 |
| Profile rows used | 161 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 1 |
| 2B | 1 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 1 |
| BB | 0 |
| SO | 2 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.25 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 5 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | CF |
| gameID | 20261004_SD@MIL |
| game_type | full |
| mlbID | 701538 |
| playerID | 701538 |
| playerName | Jackson Merrill |
| pos | CF |
| started | True |
| startingPosition | CF |
| team | SD |
| teamID | 23 |
| game_date | 2026-10-04 |
| sl_k_percent | 24.1 |
| sl_bb_percent | 6.2 |
| sl_woba | 0.32 |
| sl_xwoba | 0.347 |
| sl_xba | 0.27 |
| sl_xslg | 0.491 |
| sl_sweet_spot_percent | 39.8 |
| sl_barrel_batted_rate | 12.4 |
| sl_hard_hit_percent | 48.7 |
| sl_exit_velocity_avg | 91.5 |
| sl_launch_angle_avg | 14.3 |
| sl_whiff_percent | 27.6 |
| sl_swing_percent | 56.1 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.148 | 0.000 | 0.000 | Hitting_2B | 0.153 | 0.000 | -0.153 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 3.750 | 2.000 | 2.000 | Hitting_AB | 3.767 | 2.000 | -1.767 | 0.000 |
| predicted_AVG | 0.232 | 0.000 | 0.000 | Hitting_AVG | 0.223 | 0.000 | -0.223 | 0.000 |
| predicted_BB | 0.494 | 1.000 | 1.000 | Hitting_BB | 0.507 | 2.000 | 0.493 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.028 | 0.000 | -0.028 | 0.000 |
| predicted_H | 0.870 | 0.000 | 0.000 | Hitting_H | 0.839 | 0.000 | -0.839 | 0.000 |
| predicted_HR | 0.210 | 0.000 | 0.000 | Hitting_HR | 0.196 | 0.000 | -0.196 | 0.000 |
| predicted_OBP | 0.371 | 0.250 | 0.250 | Hitting_OBP | 0.311 | 0.500 | -0.061 | -0.250 |
| predicted_R | 0.525 | 0.000 | 0.000 | Hitting_R | 0.553 | 1.000 | -0.553 | -1.000 |
| predicted_RBI | 0.630 | 1.000 | 1.000 | Hitting_RBI | 0.606 | 0.000 | 0.394 | 1.000 |
| predicted_SLG | 0.452 | 0.000 | 0.000 | Hitting_SLG | 0.420 | 0.000 | -0.420 | 0.000 |
| predicted_SO | 0.901 | 0.000 | 0.000 | Hitting_SO | 0.898 | 0.000 | -0.898 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 12 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 9 |
| Better Metrics | 3 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_SF: 0.0000 -> 1.0000 (boost 1.0000, higher) |
| Biggest Deboost | predicted_AB: 3.7500 -> 2.0000 (deboost -1.7500, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 2 | 2 | 2 | 2 | predicted_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. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 5 | 2 | 4 | 3 | predicted_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 |
| 6 | bvp_blend | 1 | 0 | 1 | 0 | 1 | - | 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) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5115 -> 1.0000 (boost 0.4885, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 3 | 3 | 4 | 2 | predicted_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 |
| 9 | lineup_integer_allocation | 9 | 5 | 4 | 4 | 5 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 12 | play_by_play_realization | 6 | 1 | 5 | 1 | 4 | predicted_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 |
| 13 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 14 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.148 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 3.750 | - |
| predicted_AVG | 0.232 | - |
| predicted_BB | 0.494 | - |
| predicted_H | 0.870 | - |
| predicted_HR | 0.210 | - |
| predicted_OBP | 0.371 | - |
| predicted_R | 0.525 | - |
| predicted_RBI | 0.630 | - |
| predicted_SLG | 0.452 | - |
| predicted_SO | 0.901 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.178 | 0.030 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.659 | -0.091 |
| predicted_AVG | 0.246 | 0.014 |
| predicted_BB | 0.522 | 0.028 |
| predicted_H | 0.897 | 0.027 |
| predicted_HBP | 0.005 | - |
| predicted_HR | 0.211 | 0.001 |
| predicted_OBP | 0.365 | -0.006 |
| predicted_R | 0.532 | 0.007 |
| predicted_RBI | 0.636 | 0.006 |
| predicted_SLG | 0.476 | 0.024 |
| predicted_SO | 0.865 | -0.036 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.178 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.659 | 0.000 |
| predicted_AVG | 0.240 | -0.006 |
| predicted_BB | 0.519 | -0.003 |
| predicted_H | 0.877 | -0.020 |
| predicted_HBP | 0.005 | 0.000 |
| predicted_HR | 0.205 | -0.006 |
| predicted_OBP | 0.334 | -0.031 |
| predicted_R | 0.511 | -0.020 |
| predicted_RBI | 0.612 | -0.024 |
| predicted_SLG | 0.457 | -0.019 |
| predicted_SO | 0.870 | 0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.75), rates preserved: AVG=0.238 HR/AB=0.055
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 1.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=42.0, weight=0.233, BvP AVG=0.238)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -1.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.140 | 0.140 |
| 3B | 0.006 | 0.006 |
| BB | 0.472 | 0.472 |
| H | 0.847 | -0.153 |
| HR | 0.167 | 0.167 |
| RBI | 0.505 | -0.495 |
| SO | 0.906 | -0.094 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.140 |
| 3B | 0.000 | -0.006 |
| AB | 4.000 | 0.000 |
| AVG | 0.223 | - |
| BB | 1.000 | 0.528 |
| H | 1.000 | 0.153 |
| HR | 1.000 | 0.833 |
| OBP | 0.314 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.495 |
| SLG | 0.395 | - |
| SO | 1.000 | 0.094 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.178 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 4.000 | 0.341 |
| predicted_AVG | 0.223 | -0.017 |
| predicted_BB | 1.000 | 0.481 |
| predicted_H | 1.000 | 0.123 |
| predicted_HR | 1.000 | 0.795 |
| predicted_OBP | 0.314 | -0.020 |
| predicted_R | 1.000 | 0.489 |
| predicted_RBI | 1.000 | 0.388 |
| predicted_SLG | 0.395 | -0.062 |
| predicted_SO | 1.000 | 0.130 |
KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.215 | -0.008 |
| BB | 1.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 1.000 | 0.000 |
| OBP | 0.305 | -0.009 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SLG | 0.381 | -0.014 |
| SO | 1.000 | 0.000 |
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 2.000 | -2.000 |
| BB | 1.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | -1.000 |
| PA | 4.000 | - |
| R | 0.000 | -1.000 |
| RBI | 1.000 | 0.000 |
| SF | 1.000 | 1.000 |
| SO | 0.000 | -1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 2.000 | 0.000 |
| BB | 1.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SF | 1.000 | 0.000 |
| SO | 0.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 15.000 | 6.000 | 2.000 | 0.000 | 1.000 | 3.000 | 3.000 | 4.000 | 3.000 | 0.4000 | 0.5263 | 0.7333 | 0.4000 | 0.0667 | 0.2000 | 0.2667 | 0.2000 |
| last_10 | 0.20 | 10 | - | 35.000 | 9.000 | 2.000 | 0.000 | 3.000 | 9.000 | 5.000 | 5.000 | 8.000 | 0.2571 | 0.3415 | 0.5714 | 0.2571 | 0.0857 | 0.2571 | 0.1429 | 0.2286 |
| season | 0.60 | 162 | - | 602.000 | 133.000 | 24.000 | 0.000 | 31.000 | 93.000 | 85.000 | 80.000 | 146.000 | 0.2209 | 0.3088 | 0.4153 | 0.2209 | 0.0515 | 0.1545 | 0.1329 | 0.2425 |
| Metric | Value |
|---|---|
| predicted_2B | 0.2170 |
| predicted_3B | 0.0010 |
| predicted_AB | 3.5410 |
| predicted_AVG | 0.2633 |
| predicted_BB | 0.5590 |
| predicted_H | 0.9320 |
| predicted_HBP | 0.0050 |
| predicted_HR | 0.2130 |
| predicted_OBP | 0.3566 |
| predicted_R | 0.5400 |
| predicted_RBI | 0.6430 |
| predicted_SLG | 0.5059 |
| predicted_SO | 0.8180 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1480 | 0.2170 | 0.1782 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 3.7500 | 3.5410 | 3.6585 | model_form_blend |
| predicted_AVG | 0.2320 | 0.2633 | 0.2457 | model_form_blend |
| predicted_BB | 0.4940 | 0.5590 | 0.5225 | model_form_blend |
| predicted_H | 0.8700 | 0.9320 | 0.8971 | model_form_blend |
| predicted_HBP | - | 0.0050 | 0.0050 | form_only |
| predicted_HR | 0.2100 | 0.2130 | 0.2113 | model_form_blend |
| predicted_OBP | 0.3710 | 0.3566 | 0.3647 | model_form_blend |
| predicted_R | 0.5250 | 0.5400 | 0.5316 | model_form_blend |
| predicted_RBI | 0.6300 | 0.6430 | 0.6357 | model_form_blend |
| predicted_SLG | 0.4520 | 0.5059 | 0.4756 | model_form_blend |
| predicted_SO | 0.9010 | 0.8180 | 0.8647 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 647 |
| Season rows before report date | 647 |
| Report year | 2026 |
| Profile rows used | 162 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 2 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 1 |
| BB | 1 |
| SO | 0 |
| SF | 1 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 2 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 2 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 3 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 3B |
| gameID | 20261004_SD@MIL |
| game_type | full |
| mlbID | 592518 |
| playerID | 592518 |
| playerName | Manny Machado |
| pos | 3B |
| started | True |
| startingPosition | 3B |
| team | SD |
| teamID | 23 |
| game_date | 2026-10-04 |
| sl_k_percent | 21.3 |
| sl_bb_percent | 11.2 |
| sl_woba | 0.31 |
| sl_xwoba | 0.328 |
| sl_xba | 0.243 |
| sl_xslg | 0.42 |
| sl_sweet_spot_percent | 32.7 |
| sl_barrel_batted_rate | 9.7 |
| sl_hard_hit_percent | 43.6 |
| sl_exit_velocity_avg | 90.1 |
| sl_launch_angle_avg | 14.5 |
| sl_whiff_percent | 25.3 |
| sl_swing_percent | 47.8 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.191 | 0.000 | 0.000 | Hitting_2B | 0.214 | 0.000 | -0.214 | 0.000 |
| predicted_3B | 0.015 | 0.000 | 0.000 | Hitting_3B | 0.012 | 0.000 | -0.012 | 0.000 |
| predicted_AB | 3.690 | 4.000 | 4.000 | Hitting_AB | 3.599 | 3.000 | 0.401 | 1.000 |
| predicted_AVG | 0.319 | 0.000 | 0.000 | Hitting_AVG | 0.308 | 0.667 | -0.308 | -0.667 |
| predicted_BB | 0.282 | 0.000 | 0.000 | Hitting_BB | 0.301 | 0.000 | -0.301 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.006 | 0.000 | -0.006 | 0.000 |
| predicted_H | 1.180 | 0.000 | 0.000 | Hitting_H | 1.108 | 2.000 | -1.108 | -2.000 |
| predicted_HR | 0.120 | 0.000 | 0.000 | Hitting_HR | 0.177 | 0.000 | -0.177 | 0.000 |
| predicted_OBP | 0.403 | 0.000 | 0.000 | Hitting_OBP | 0.373 | 0.750 | -0.373 | -0.750 |
| predicted_R | 0.466 | 0.000 | 0.000 | Hitting_R | 0.497 | 0.000 | -0.497 | 0.000 |
| predicted_RBI | 0.610 | 0.000 | 0.000 | Hitting_RBI | 0.601 | 2.000 | -0.601 | -2.000 |
| predicted_SLG | 0.435 | 0.000 | 0.000 | Hitting_SLG | 0.522 | 0.667 | -0.522 | -0.667 |
| predicted_SO | 0.847 | 2.000 | 2.000 | Hitting_SO | 0.832 | 1.000 | 1.168 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 12 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 10 |
| Better Metrics | 1 |
| Worse Metrics | 11 |
| Biggest Boost | predicted_SO: 0.8470 -> 2.0000 (boost 1.1530, worse) |
| Biggest Deboost | predicted_H: 1.1800 -> 0.0000 (deboost -1.1800, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 1 | 1 | 0 | 1 | 0 | predicted_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. |
| 3 | team_form_snapshot | 3 | 1 | 2 | 1 | 2 | predicted_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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 3 | 5 | 2 | 6 | predicted_RBI: 0.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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.333) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4767 -> 0.0000 (deboost -0.4767, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 4 | 3 | 1 | 3 | 1 | predicted_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 |
| 9 | lineup_integer_allocation | 7 | 1 | 6 | 1 | 6 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 12 | play_by_play_realization | 3 | 1 | 2 | 0 | 3 | predicted_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 |
| 13 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 14 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.191 | - |
| predicted_3B | 0.015 | - |
| predicted_AB | 3.690 | - |
| predicted_AVG | 0.319 | - |
| predicted_BB | 0.282 | - |
| predicted_H | 1.180 | - |
| predicted_HR | 0.120 | - |
| predicted_OBP | 0.403 | - |
| predicted_R | 0.466 | - |
| predicted_RBI | 0.610 | - |
| predicted_SLG | 0.435 | - |
| predicted_SO | 0.847 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.184 | -0.007 |
| predicted_3B | 0.013 | -0.002 |
| predicted_AB | 3.649 | -0.041 |
| predicted_AVG | 0.324 | 0.005 |
| predicted_BB | 0.277 | -0.005 |
| predicted_H | 1.183 | 0.003 |
| predicted_HBP | 0.196 | - |
| predicted_HR | 0.112 | -0.008 |
| predicted_OBP | 0.403 | -0.000 |
| predicted_R | 0.495 | 0.029 |
| predicted_RBI | 0.578 | -0.032 |
| predicted_SLG | 0.450 | 0.015 |
| predicted_SO | 0.849 | 0.002 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.184 | 0.000 |
| predicted_3B | 0.013 | 0.000 |
| predicted_AB | 3.649 | 0.000 |
| predicted_AVG | 0.317 | -0.007 |
| predicted_BB | 0.275 | -0.002 |
| predicted_H | 1.156 | -0.027 |
| predicted_HBP | 0.196 | 0.000 |
| predicted_HR | 0.109 | -0.003 |
| predicted_OBP | 0.365 | -0.038 |
| predicted_R | 0.477 | -0.019 |
| predicted_RBI | 0.556 | -0.022 |
| predicted_SLG | 0.464 | 0.014 |
| predicted_SO | 0.854 | 0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.69), rates preserved: AVG=0.319 HR/AB=0.029
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.333)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.146 | 0.146 |
| 3B | 0.011 | 0.011 |
| BB | 0.321 | 0.321 |
| H | 1.023 | 0.023 |
| HR | 0.164 | 0.164 |
| RBI | 0.527 | -0.473 |
| SO | 0.963 | -0.037 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.146 |
| 3B | 0.000 | -0.011 |
| AB | 4.000 | 0.000 |
| AVG | 0.267 | - |
| BB | 0.000 | -0.321 |
| H | 1.000 | -0.023 |
| HR | 0.000 | -0.164 |
| OBP | 0.329 | - |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.473 |
| SLG | 0.439 | - |
| SO | 1.000 | 0.037 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.184 |
| predicted_3B | 0.000 | -0.013 |
| predicted_AB | 4.000 | 0.351 |
| predicted_AVG | 0.267 | -0.050 |
| predicted_BB | 0.000 | -0.275 |
| predicted_H | 1.000 | -0.156 |
| predicted_HR | 0.000 | -0.109 |
| predicted_OBP | 0.329 | -0.036 |
| predicted_R | 0.000 | -0.477 |
| predicted_RBI | 1.000 | 0.444 |
| predicted_SLG | 0.439 | -0.025 |
| predicted_SO | 1.000 | 0.146 |
KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.257 | -0.010 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.318 | -0.011 |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SLG | 0.424 | -0.015 |
| SO | 1.000 | 0.000 |
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -1.000 |
| SF | 0.000 | 0.000 |
| SO | 2.000 | 1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 2.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 19.000 | 9.000 | 1.000 | 0.000 | 0.000 | 3.000 | 4.000 | 1.000 | 3.000 | 0.4737 | 0.5455 | 0.5263 | 0.4737 | 0.0000 | 0.1579 | 0.0526 | 0.1579 |
| last_10 | 0.20 | 10 | - | 37.000 | 11.000 | 1.000 | 0.000 | 0.000 | 4.000 | 5.000 | 3.000 | 11.000 | 0.2973 | 0.3953 | 0.3243 | 0.2973 | 0.0000 | 0.1081 | 0.0811 | 0.2973 |
| season | 0.60 | 131 | - | 455.000 | 137.000 | 25.000 | 2.000 | 21.000 | 74.000 | 61.000 | 37.000 | 111.000 | 0.3011 | 0.3670 | 0.5033 | 0.3011 | 0.0461 | 0.1626 | 0.0813 | 0.2440 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1750 |
| predicted_3B | 0.0100 |
| predicted_AB | 3.5960 |
| predicted_AVG | 0.3301 |
| predicted_BB | 0.2700 |
| predicted_H | 1.1870 |
| predicted_HBP | 0.1960 |
| predicted_HR | 0.1010 |
| predicted_OBP | 0.4027 |
| predicted_R | 0.5340 |
| predicted_RBI | 0.5370 |
| predicted_SLG | 0.4685 |
| predicted_SO | 0.8510 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1910 | 0.1750 | 0.1841 | model_form_blend |
| predicted_3B | 0.0150 | 0.0100 | 0.0128 | model_form_blend |
| predicted_AB | 3.6900 | 3.5960 | 3.6492 | model_form_blend |
| predicted_AVG | 0.3190 | 0.3301 | 0.3238 | model_form_blend |
| predicted_BB | 0.2820 | 0.2700 | 0.2768 | model_form_blend |
| predicted_H | 1.1800 | 1.1870 | 1.1830 | model_form_blend |
| predicted_HBP | - | 0.1960 | 0.1960 | form_only |
| predicted_HR | 0.1200 | 0.1010 | 0.1118 | model_form_blend |
| predicted_OBP | 0.4030 | 0.4027 | 0.4029 | model_form_blend |
| predicted_R | 0.4660 | 0.5340 | 0.4955 | model_form_blend |
| predicted_RBI | 0.6100 | 0.5370 | 0.5783 | model_form_blend |
| predicted_SLG | 0.4350 | 0.4685 | 0.4495 | model_form_blend |
| predicted_SO | 0.8470 | 0.8510 | 0.8487 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 481 |
| Season rows before report date | 481 |
| Report year | 2026 |
| Profile rows used | 131 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 2 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.667 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 2 |
| Hitting_HBP | 1 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 2 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 2 |
| Hitting_battingOrder | 4 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 1B |
| gameID | 20261004_SD@MIL |
| game_type | full |
| mlbID | 664034 |
| playerID | 664034 |
| playerName | Ty France |
| pos | 1B |
| started | True |
| startingPosition | 1B |
| team | SD |
| teamID | 23 |
| game_date | 2026-10-04 |
| sl_k_percent | 21.6 |
| sl_bb_percent | 7.4 |
| sl_woba | 0.373 |
| sl_xwoba | 0.327 |
| sl_xba | 0.248 |
| sl_xslg | 0.421 |
| sl_sweet_spot_percent | 38.5 |
| sl_barrel_batted_rate | 9.1 |
| sl_hard_hit_percent | 47.4 |
| sl_exit_velocity_avg | 91.5 |
| sl_launch_angle_avg | 14.6 |
| sl_whiff_percent | 28.1 |
| sl_swing_percent | 54.3 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.000 | 0.000 | 0.000 | Hitting_2B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_3B | 0.058 | 0.000 | 0.000 | Hitting_3B | 0.067 | 0.000 | -0.067 | 0.000 |
| predicted_AB | 2.500 | 4.000 | 4.000 | Hitting_AB | 2.700 | 3.000 | 1.300 | 1.000 |
| predicted_AVG | 0.331 | 0.500 | 0.500 | Hitting_AVG | 0.222 | 0.333 | 0.278 | 0.167 |
| predicted_BB | 0.058 | 0.000 | 0.000 | Hitting_BB | 0.033 | 0.000 | -0.033 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.790 | 2.000 | 2.000 | Hitting_H | 0.600 | 1.000 | 1.400 | 1.000 |
| predicted_HR | 0.080 | 0.000 | 0.000 | Hitting_HR | 0.267 | 0.000 | -0.267 | 0.000 |
| predicted_OBP | 0.337 | 0.500 | 0.500 | Hitting_OBP | 0.229 | 0.333 | 0.271 | 0.167 |
| predicted_R | 0.407 | 1.000 | 1.000 | Hitting_R | 0.467 | 1.000 | 0.533 | 0.000 |
| predicted_RBI | 0.320 | 0.000 | 0.000 | Hitting_RBI | 0.500 | 0.000 | -0.500 | 0.000 |
| predicted_SLG | 0.437 | 0.500 | 0.500 | Hitting_SLG | 0.568 | 0.333 | -0.068 | 0.167 |
| predicted_SO | 0.640 | 1.000 | 1.000 | Hitting_SO | 0.700 | 1.000 | 0.300 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 4 |
| Deboosted Metrics | 7 |
| Better Metrics | 3 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_AB: 2.5000 -> 4.0000 (boost 1.5000, better) |
| Biggest Deboost | predicted_RBI: 0.3200 -> 0.0000 (deboost -0.3200, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 1 | 2 | 1 | 2 | predicted_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. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 3 | 3 | 2 | 4 | predicted_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 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4303 -> 0.0000 (deboost -0.4303, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_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 |
| 8 | lineup_integer_allocation | 9 | 2 | 7 | 1 | 8 | predicted_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 |
| 9 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 11 | play_by_play_realization | 3 | 3 | 0 | 3 | 0 | predicted_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 |
| 12 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 13 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | - |
| predicted_3B | 0.058 | - |
| predicted_AB | 2.500 | - |
| predicted_AVG | 0.331 | - |
| predicted_BB | 0.058 | - |
| predicted_H | 0.790 | - |
| predicted_HR | 0.080 | - |
| predicted_OBP | 0.337 | - |
| predicted_R | 0.407 | - |
| predicted_RBI | 0.320 | - |
| predicted_SLG | 0.437 | - |
| predicted_SO | 0.640 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.019 | 0.019 |
| predicted_3B | 0.049 | -0.009 |
| predicted_AB | 2.668 | 0.168 |
| predicted_AVG | 0.318 | -0.013 |
| predicted_BB | 0.079 | 0.021 |
| predicted_H | 0.820 | 0.030 |
| predicted_HBP | 0.010 | - |
| predicted_HR | 0.093 | 0.013 |
| predicted_OBP | 0.332 | -0.005 |
| predicted_R | 0.447 | 0.040 |
| predicted_RBI | 0.361 | 0.041 |
| predicted_SLG | 0.442 | 0.005 |
| predicted_SO | 0.655 | 0.015 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.019 | 0.000 |
| predicted_3B | 0.049 | 0.000 |
| predicted_AB | 2.668 | 0.000 |
| predicted_AVG | 0.300 | -0.018 |
| predicted_BB | 0.079 | -0.001 |
| predicted_H | 0.801 | -0.018 |
| predicted_HBP | 0.010 | 0.000 |
| predicted_HR | 0.091 | -0.003 |
| predicted_OBP | 0.321 | -0.011 |
| predicted_R | 0.430 | -0.017 |
| predicted_RBI | 0.347 | -0.014 |
| predicted_SLG | 0.446 | 0.004 |
| predicted_SO | 0.659 | 0.004 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=2.67), rates preserved: AVG=0.305 HR/AB=0.034
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.126 | 0.126 |
| 3B | 0.012 | 0.012 |
| BB | 0.272 | 0.272 |
| H | 0.769 | -0.231 |
| HR | 0.114 | 0.114 |
| RBI | 0.389 | 0.389 |
| SO | 0.841 | -0.159 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.126 |
| 3B | 0.000 | -0.012 |
| AB | 3.000 | 0.000 |
| AVG | 0.238 | - |
| BB | 0.000 | -0.272 |
| H | 1.000 | 0.231 |
| HR | 0.000 | -0.114 |
| OBP | 0.302 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.389 |
| SLG | 0.390 | - |
| SO | 1.000 | 0.159 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.019 |
| predicted_3B | 0.000 | -0.049 |
| predicted_AB | 3.000 | 0.332 |
| predicted_AVG | 0.238 | -0.062 |
| predicted_BB | 0.000 | -0.079 |
| predicted_H | 1.000 | 0.199 |
| predicted_HR | 0.000 | -0.091 |
| predicted_OBP | 0.302 | -0.019 |
| predicted_R | 0.000 | -0.430 |
| predicted_RBI | 0.000 | -0.347 |
| predicted_SLG | 0.390 | -0.056 |
| predicted_SO | 1.000 | 0.341 |
KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| AVG | 0.229 | -0.009 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.293 | -0.009 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.376 | -0.014 |
| SO | 1.000 | 0.000 |
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 1.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 2.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 13.000 | 6.000 | 0.000 | 0.000 | 0.000 | 2.000 | 4.000 | 0.000 | 3.000 | 0.4615 | 0.4615 | 0.4615 | 0.4615 | 0.0000 | 0.1538 | 0.0000 | 0.2308 |
| last_10 | 0.20 | 10 | - | 26.000 | 10.000 | 0.000 | 0.000 | 2.000 | 6.000 | 6.000 | 1.000 | 4.000 | 0.3846 | 0.3929 | 0.6154 | 0.3846 | 0.0769 | 0.2308 | 0.0385 | 0.1538 |
| season | 0.60 | 18 | - | 43.000 | 11.000 | 0.000 | 1.000 | 2.000 | 6.000 | 7.000 | 1.000 | 11.000 | 0.2558 | 0.2667 | 0.4419 | 0.2558 | 0.0465 | 0.1395 | 0.0233 | 0.2558 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0560 |
| predicted_3B | 0.0300 |
| predicted_AB | 3.0040 |
| predicted_AVG | 0.2928 |
| predicted_BB | 0.1220 |
| predicted_H | 0.8800 |
| predicted_HBP | 0.0100 |
| predicted_HR | 0.1200 |
| predicted_OBP | 0.3207 |
| predicted_R | 0.5280 |
| predicted_RBI | 0.4420 |
| predicted_SLG | 0.4512 |
| predicted_SO | 0.6840 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.0000 | 0.0560 | 0.0186 | model_form_blend |
| predicted_3B | 0.0580 | 0.0300 | 0.0487 | model_form_blend |
| predicted_AB | 2.5000 | 3.0040 | 2.6678 | model_form_blend |
| predicted_AVG | 0.3310 | 0.2928 | 0.3183 | model_form_blend |
| predicted_BB | 0.0580 | 0.1220 | 0.0793 | model_form_blend |
| predicted_H | 0.7900 | 0.8800 | 0.8200 | model_form_blend |
| predicted_HBP | - | 0.0100 | 0.0100 | form_only |
| predicted_HR | 0.0800 | 0.1200 | 0.0933 | model_form_blend |
| predicted_OBP | 0.3370 | 0.3207 | 0.3316 | model_form_blend |
| predicted_R | 0.4070 | 0.5280 | 0.4473 | model_form_blend |
| predicted_RBI | 0.3200 | 0.4420 | 0.3606 | model_form_blend |
| predicted_SLG | 0.4370 | 0.4512 | 0.4417 | model_form_blend |
| predicted_SO | 0.6400 | 0.6840 | 0.6547 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 30 |
| Season rows before report date | 30 |
| Report year | 2026 |
| Profile rows used | 18 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 2 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.333 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 7 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | C |
| gameID | 20261003_SD@MIL |
| game_type | full |
| mlbID | 806956 |
| playerID | 806956 |
| playerName | Ethan Salas |
| pos | C |
| started | True |
| startingPosition | C |
| team | SD |
| teamID | 23 |
| game_date | 2026-10-03 |
| sl_k_percent | 22.5 |
| sl_bb_percent | 2.5 |
| sl_woba | 0.316 |
| sl_xwoba | 0.227 |
| sl_xba | 0.188 |
| sl_xslg | 0.316 |
| sl_sweet_spot_percent | 23.3 |
| sl_barrel_batted_rate | 3.3 |
| sl_hard_hit_percent | 33.3 |
| sl_exit_velocity_avg | 90.1 |
| sl_launch_angle_avg | 25.7 |
| sl_whiff_percent | 19.4 |
| sl_swing_percent | 48.3 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.121 | 0.000 | 0.000 | Hitting_2B | 0.126 | 0.000 | -0.126 | 0.000 |
| predicted_3B | 0.006 | 0.000 | 0.000 | Hitting_3B | 0.009 | 0.000 | -0.009 | 0.000 |
| predicted_AB | 3.401 | 4.000 | 4.000 | Hitting_AB | 3.506 | 3.000 | 0.494 | 1.000 |
| predicted_AVG | 0.223 | 0.250 | 0.250 | Hitting_AVG | 0.236 | 0.000 | 0.014 | 0.250 |
| predicted_BB | 0.503 | 0.000 | 0.000 | Hitting_BB | 0.518 | 1.000 | -0.518 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.007 | 0.000 | -0.007 | 0.000 |
| predicted_H | 0.760 | 1.000 | 1.000 | Hitting_H | 0.826 | 0.000 | 0.174 | 1.000 |
| predicted_HR | 0.140 | 0.000 | 0.000 | Hitting_HR | 0.090 | 0.000 | -0.090 | 0.000 |
| predicted_OBP | 0.380 | 0.250 | 0.250 | Hitting_OBP | 0.335 | 0.250 | -0.085 | 0.000 |
| predicted_R | 0.452 | 1.000 | 1.000 | Hitting_R | 0.455 | 0.000 | 0.545 | 1.000 |
| predicted_RBI | 0.460 | 0.000 | 0.000 | Hitting_RBI | 0.424 | 0.000 | -0.424 | 0.000 |
| predicted_SLG | 0.432 | 0.250 | 0.250 | Hitting_SLG | 0.354 | 0.000 | -0.104 | 0.250 |
| predicted_SO | 0.713 | 0.000 | 0.000 | Hitting_SO | 0.721 | 2.000 | -0.721 | -2.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 8 |
| Better Metrics | 4 |
| Worse Metrics | 7 |
| Biggest Boost | predicted_AB: 3.4010 -> 4.0000 (boost 0.5990, better) |
| Biggest Deboost | predicted_SO: 0.7130 -> 0.0000 (deboost -0.7130, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 4 | 0 | 4 | 0 | predicted_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. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 3 | 4 | 2 | 5 | predicted_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 |
| 6 | bvp_blend | 1 | 0 | 1 | 0 | 1 | - | 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) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4958 -> 0.0000 (deboost -0.4958, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_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 |
| 9 | lineup_integer_allocation | 9 | 3 | 6 | 2 | 7 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 12 | play_by_play_realization | 4 | 2 | 2 | 3 | 1 | predicted_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 |
| 13 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 14 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.121 | - |
| predicted_3B | 0.006 | - |
| predicted_AB | 3.401 | - |
| predicted_AVG | 0.223 | - |
| predicted_BB | 0.503 | - |
| predicted_H | 0.760 | - |
| predicted_HR | 0.140 | - |
| predicted_OBP | 0.380 | - |
| predicted_R | 0.452 | - |
| predicted_RBI | 0.460 | - |
| predicted_SLG | 0.432 | - |
| predicted_SO | 0.713 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.127 | 0.006 |
| predicted_3B | 0.005 | -0.001 |
| predicted_AB | 3.359 | -0.042 |
| predicted_AVG | 0.248 | 0.025 |
| predicted_BB | 0.543 | 0.040 |
| predicted_H | 0.833 | 0.073 |
| predicted_HBP | 0.015 | - |
| predicted_HR | 0.156 | 0.016 |
| predicted_OBP | 0.384 | 0.004 |
| predicted_R | 0.515 | 0.063 |
| predicted_RBI | 0.438 | -0.022 |
| predicted_SLG | 0.454 | 0.022 |
| predicted_SO | 0.713 | 0.000 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.127 | 0.000 |
| predicted_3B | 0.005 | 0.000 |
| predicted_AB | 3.359 | 0.000 |
| predicted_AVG | 0.242 | -0.006 |
| predicted_BB | 0.540 | -0.003 |
| predicted_H | 0.814 | -0.019 |
| predicted_HBP | 0.015 | 0.000 |
| predicted_HR | 0.151 | -0.004 |
| predicted_OBP | 0.347 | -0.036 |
| predicted_R | 0.496 | -0.019 |
| predicted_RBI | 0.422 | -0.017 |
| predicted_SLG | 0.418 | -0.036 |
| predicted_SO | 0.718 | 0.004 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.40), rates preserved: AVG=0.243 HR/AB=0.044
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 1.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=16.0, weight=0.139, BvP AVG=0.188)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -1.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.125 | 0.125 |
| 3B | 0.007 | 0.007 |
| BB | 0.464 | 0.464 |
| H | 0.769 | -0.231 |
| HR | 0.101 | 0.101 |
| RBI | 0.348 | 0.348 |
| SO | 0.724 | -0.276 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.125 |
| 3B | 0.000 | -0.007 |
| AB | 3.000 | 0.000 |
| AVG | 0.223 | - |
| BB | 1.000 | 0.536 |
| H | 1.000 | 0.231 |
| HR | 0.000 | -0.101 |
| OBP | 0.320 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.348 |
| SLG | 0.351 | - |
| SO | 1.000 | 0.276 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.127 |
| predicted_3B | 0.000 | -0.005 |
| predicted_AB | 3.000 | -0.359 |
| predicted_AVG | 0.223 | -0.019 |
| predicted_BB | 1.000 | 0.460 |
| predicted_H | 1.000 | 0.186 |
| predicted_HR | 0.000 | -0.151 |
| predicted_OBP | 0.320 | -0.027 |
| predicted_R | 0.000 | -0.496 |
| predicted_RBI | 0.000 | -0.422 |
| predicted_SLG | 0.351 | -0.067 |
| predicted_SO | 1.000 | 0.282 |
KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| AVG | 0.215 | -0.008 |
| BB | 1.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.311 | -0.009 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.339 | -0.012 |
| SO | 1.000 | 0.000 |
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | -1.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 1.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 16.000 | 6.000 | 1.000 | 0.000 | 2.000 | 3.000 | 4.000 | 4.000 | 4.000 | 0.3750 | 0.5000 | 0.8125 | 0.3750 | 0.1250 | 0.1875 | 0.2500 | 0.2500 |
| last_10 | 0.20 | 10 | - | 30.000 | 10.000 | 1.000 | 0.000 | 2.000 | 3.000 | 8.000 | 7.000 | 6.000 | 0.3333 | 0.4595 | 0.5667 | 0.3333 | 0.0667 | 0.1000 | 0.2333 | 0.2000 |
| season | 0.60 | 157 | - | 534.000 | 125.000 | 19.000 | 1.000 | 14.000 | 59.000 | 71.000 | 79.000 | 112.000 | 0.2341 | 0.3344 | 0.3521 | 0.2341 | 0.0262 | 0.1105 | 0.1479 | 0.2097 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1350 |
| predicted_3B | 0.0040 |
| predicted_AB | 3.3050 |
| predicted_AVG | 0.2806 |
| predicted_BB | 0.5950 |
| predicted_H | 0.9270 |
| predicted_HBP | 0.0150 |
| predicted_HR | 0.1760 |
| predicted_OBP | 0.3885 |
| predicted_R | 0.5970 |
| predicted_RBI | 0.4100 |
| predicted_SLG | 0.4834 |
| predicted_SO | 0.7140 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1210 | 0.1350 | 0.1271 | model_form_blend |
| predicted_3B | 0.0060 | 0.0040 | 0.0051 | model_form_blend |
| predicted_AB | 3.4010 | 3.3050 | 3.3591 | model_form_blend |
| predicted_AVG | 0.2230 | 0.2806 | 0.2481 | model_form_blend |
| predicted_BB | 0.5030 | 0.5950 | 0.5432 | model_form_blend |
| predicted_H | 0.7600 | 0.9270 | 0.8329 | model_form_blend |
| predicted_HBP | - | 0.0150 | 0.0150 | form_only |
| predicted_HR | 0.1400 | 0.1760 | 0.1557 | model_form_blend |
| predicted_OBP | 0.3800 | 0.3885 | 0.3837 | model_form_blend |
| predicted_R | 0.4520 | 0.5970 | 0.5153 | model_form_blend |
| predicted_RBI | 0.4600 | 0.4100 | 0.4382 | model_form_blend |
| predicted_SLG | 0.4320 | 0.4834 | 0.4544 | model_form_blend |
| predicted_SO | 0.7130 | 0.7140 | 0.7134 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 587 |
| Season rows before report date | 587 |
| Report year | 2026 |
| Profile rows used | 157 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 2 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 7 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | SS |
| gameID | 20261004_SD@MIL |
| game_type | full |
| mlbID | 593428 |
| playerID | 593428 |
| playerName | Xander Bogaerts |
| pos | SS |
| started | True |
| startingPosition | SS |
| team | SD |
| teamID | 23 |
| game_date | 2026-10-04 |
| sl_k_percent | 18.0 |
| sl_bb_percent | 12.7 |
| sl_woba | 0.306 |
| sl_xwoba | 0.325 |
| sl_xba | 0.248 |
| sl_xslg | 0.376 |
| sl_sweet_spot_percent | 27.9 |
| sl_barrel_batted_rate | 5.5 |
| sl_hard_hit_percent | 42.3 |
| sl_exit_velocity_avg | 89.6 |
| sl_launch_angle_avg | 6.7 |
| sl_whiff_percent | 23.1 |
| sl_swing_percent | 41.5 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.091 | 0.000 | 0.000 | Hitting_2B | 0.149 | 0.000 | -0.149 | 0.000 |
| predicted_3B | 0.091 | 1.000 | 1.000 | Hitting_3B | 0.135 | 0.000 | 0.865 | 1.000 |
| predicted_AB | 3.430 | 4.000 | 4.000 | Hitting_AB | 3.635 | 5.000 | 0.365 | -1.000 |
| predicted_AVG | 0.249 | 0.500 | 0.500 | Hitting_AVG | 0.349 | 0.000 | 0.151 | 0.500 |
| predicted_BB | 0.227 | 0.000 | 0.000 | Hitting_BB | 0.230 | 0.000 | -0.230 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.041 | 0.000 | -0.041 | 0.000 |
| predicted_H | 0.850 | 2.000 | 2.000 | Hitting_H | 1.270 | 0.000 | 0.730 | 2.000 |
| predicted_HR | 0.020 | 0.000 | 0.000 | Hitting_HR | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_OBP | 0.304 | 0.500 | 0.500 | Hitting_OBP | 0.384 | 0.000 | 0.116 | 0.500 |
| predicted_R | 0.523 | 1.000 | 1.000 | Hitting_R | 0.662 | 0.000 | 0.338 | 1.000 |
| predicted_RBI | 0.420 | 2.000 | 2.000 | Hitting_RBI | 0.770 | 1.000 | 1.230 | 1.000 |
| predicted_SLG | 0.342 | 1.000 | 1.000 | Hitting_SLG | 0.465 | 0.000 | 0.535 | 1.000 |
| predicted_SO | 0.477 | 1.000 | 1.000 | Hitting_SO | 0.459 | 1.000 | 0.541 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | boosted |
| Changed Metrics | 10 |
| Boosted Metrics | 6 |
| Deboosted Metrics | 4 |
| Better Metrics | 5 |
| Worse Metrics | 5 |
| Biggest Boost | predicted_RBI: 0.4200 -> 2.0000 (boost 1.5800, better) |
| Biggest Deboost | predicted_BB: 0.2270 -> 0.0000 (deboost -0.2270, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 3 | 5 | 2 | 6 | predicted_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 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5009 -> 1.0000 (boost 0.4991, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_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 |
| 8 | lineup_integer_allocation | 8 | 3 | 5 | 4 | 4 | predicted_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 |
| 9 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 11 | play_by_play_realization | 4 | 4 | 0 | 3 | 1 | predicted_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 |
| 12 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 13 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.091 | - |
| predicted_3B | 0.091 | - |
| predicted_AB | 3.430 | - |
| predicted_AVG | 0.249 | - |
| predicted_BB | 0.227 | - |
| predicted_H | 0.850 | - |
| predicted_HR | 0.020 | - |
| predicted_OBP | 0.304 | - |
| predicted_R | 0.523 | - |
| predicted_RBI | 0.420 | - |
| predicted_SLG | 0.342 | - |
| predicted_SO | 0.477 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.085 | -0.006 |
| predicted_3B | 0.082 | -0.009 |
| predicted_AB | 3.479 | 0.049 |
| predicted_AVG | 0.253 | 0.004 |
| predicted_BB | 0.227 | -0.000 |
| predicted_H | 0.877 | 0.027 |
| predicted_HBP | 0.075 | - |
| predicted_HR | 0.020 | -0.000 |
| predicted_OBP | 0.307 | 0.003 |
| predicted_R | 0.521 | -0.002 |
| predicted_RBI | 0.405 | -0.015 |
| predicted_SLG | 0.339 | -0.003 |
| predicted_SO | 0.479 | 0.002 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.085 | 0.000 |
| predicted_3B | 0.082 | 0.000 |
| predicted_AB | 3.479 | 0.000 |
| predicted_AVG | 0.246 | -0.006 |
| predicted_BB | 0.225 | -0.001 |
| predicted_H | 0.857 | -0.020 |
| predicted_HBP | 0.075 | 0.000 |
| predicted_HR | 0.019 | -0.001 |
| predicted_OBP | 0.292 | -0.015 |
| predicted_R | 0.501 | -0.020 |
| predicted_RBI | 0.389 | -0.015 |
| predicted_SLG | 0.334 | -0.005 |
| predicted_SO | 0.482 | 0.003 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.48), rates preserved: AVG=0.250 HR/AB=0.005
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.141 | 0.141 |
| 3B | 0.021 | 0.021 |
| BB | 0.322 | 0.322 |
| H | 0.889 | -0.111 |
| HR | 0.074 | 0.074 |
| RBI | 0.445 | 0.445 |
| SO | 0.629 | -0.371 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.141 |
| 3B | 0.000 | -0.021 |
| AB | 4.000 | 0.000 |
| AVG | 0.243 | - |
| BB | 0.000 | -0.322 |
| H | 1.000 | 0.111 |
| HR | 0.000 | -0.074 |
| OBP | 0.310 | - |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.445 |
| SLG | 0.354 | - |
| SO | 0.000 | -0.629 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.085 |
| predicted_3B | 0.000 | -0.082 |
| predicted_AB | 4.000 | 0.521 |
| predicted_AVG | 0.243 | -0.003 |
| predicted_BB | 0.000 | -0.225 |
| predicted_H | 1.000 | 0.143 |
| predicted_HR | 0.000 | -0.019 |
| predicted_OBP | 0.310 | 0.018 |
| predicted_R | 1.000 | 0.499 |
| predicted_RBI | 0.000 | -0.389 |
| predicted_SLG | 0.354 | 0.020 |
| predicted_SO | 0.000 | -0.482 |
KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| AVG | 0.235 | -0.008 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.300 | -0.010 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.341 | -0.013 |
| SO | 0.000 | 0.000 |
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 1.000 | 1.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 0.000 |
| RBI | 2.000 | 2.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 1.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 2.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 1.000 | 0.000 |
| RBI | 2.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 20.000 | 5.000 | 0.000 | 0.000 | 0.000 | 1.000 | 2.000 | 1.000 | 1.000 | 0.2500 | 0.2857 | 0.2500 | 0.2500 | 0.0000 | 0.0500 | 0.0500 | 0.0500 |
| last_10 | 0.20 | 10 | - | 37.000 | 8.000 | 0.000 | 1.000 | 0.000 | 2.000 | 6.000 | 2.000 | 4.000 | 0.2162 | 0.2857 | 0.2703 | 0.2162 | 0.0000 | 0.0541 | 0.0541 | 0.1081 |
| season | 0.60 | 44 | - | 144.000 | 40.000 | 4.000 | 4.000 | 0.000 | 20.000 | 23.000 | 10.000 | 21.000 | 0.2778 | 0.3312 | 0.3611 | 0.2778 | 0.0000 | 0.1389 | 0.0694 | 0.1458 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0760 |
| predicted_3B | 0.0680 |
| predicted_AB | 3.5510 |
| predicted_AVG | 0.2580 |
| predicted_BB | 0.2260 |
| predicted_H | 0.9160 |
| predicted_HBP | 0.0750 |
| predicted_HR | 0.0190 |
| predicted_OBP | 0.3118 |
| predicted_R | 0.5170 |
| predicted_RBI | 0.3820 |
| predicted_SLG | 0.3344 |
| predicted_SO | 0.4820 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.0910 | 0.0760 | 0.0849 | model_form_blend |
| predicted_3B | 0.0910 | 0.0680 | 0.0817 | model_form_blend |
| predicted_AB | 3.4300 | 3.5510 | 3.4789 | model_form_blend |
| predicted_AVG | 0.2490 | 0.2580 | 0.2526 | model_form_blend |
| predicted_BB | 0.2270 | 0.2260 | 0.2266 | model_form_blend |
| predicted_H | 0.8500 | 0.9160 | 0.8767 | model_form_blend |
| predicted_HBP | - | 0.0750 | 0.0750 | form_only |
| predicted_HR | 0.0200 | 0.0190 | 0.0196 | model_form_blend |
| predicted_OBP | 0.3040 | 0.3118 | 0.3071 | model_form_blend |
| predicted_R | 0.5230 | 0.5170 | 0.5206 | model_form_blend |
| predicted_RBI | 0.4200 | 0.3820 | 0.4047 | model_form_blend |
| predicted_SLG | 0.3420 | 0.3344 | 0.3389 | model_form_blend |
| predicted_SO | 0.4770 | 0.4820 | 0.4790 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 74 |
| Season rows before report date | 74 |
| Report year | 2026 |
| Profile rows used | 44 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 2 |
| 2B | 0 |
| 3B | 1 |
| HR | 0 |
| R | 1 |
| RBI | 2 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 5 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 2 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | LF |
| gameID | 20261004_SD@MIL |
| game_type | full |
| mlbID | 687957 |
| playerID | 687957 |
| playerName | Dustin Harris |
| pos | LF |
| started | True |
| startingPosition | LF |
| team | SD |
| teamID | 23 |
| game_date | 2026-10-04 |
| sl_k_percent | 13.2 |
| sl_bb_percent | 7.2 |
| sl_woba | 0.326 |
| sl_xwoba | 0.314 |
| sl_xba | 0.278 |
| sl_xslg | 0.36 |
| sl_sweet_spot_percent | 39.8 |
| sl_barrel_batted_rate | 1.7 |
| sl_hard_hit_percent | 19.5 |
| sl_exit_velocity_avg | 85.2 |
| sl_launch_angle_avg | 15.6 |
| sl_whiff_percent | 19.3 |
| sl_swing_percent | 48.7 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.080 | 0.000 | 0.000 | Hitting_2B | 0.094 | 0.000 | -0.094 | 0.000 |
| predicted_3B | 0.040 | 0.000 | 0.000 | Hitting_3B | 0.044 | 0.000 | -0.044 | 0.000 |
| predicted_AB | 3.120 | 4.000 | 4.000 | Hitting_AB | 3.465 | 1.000 | 0.535 | 3.000 |
| predicted_AVG | 0.314 | 0.500 | 0.500 | Hitting_AVG | 0.332 | 1.000 | 0.168 | -0.500 |
| predicted_BB | 0.360 | 0.000 | 0.000 | Hitting_BB | 0.459 | 0.000 | -0.459 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.063 | 0.000 | -0.063 | 0.000 |
| predicted_H | 0.980 | 2.000 | 2.000 | Hitting_H | 1.151 | 1.000 | 0.849 | 1.000 |
| predicted_HR | 0.040 | 0.000 | 0.000 | Hitting_HR | 0.038 | 0.000 | -0.038 | 0.000 |
| predicted_OBP | 0.385 | 0.500 | 0.500 | Hitting_OBP | 0.414 | 1.000 | 0.086 | -0.500 |
| predicted_R | 0.520 | 0.000 | 0.000 | Hitting_R | 0.623 | 0.000 | -0.623 | 0.000 |
| predicted_RBI | 0.360 | 0.000 | 0.000 | Hitting_RBI | 0.415 | 0.000 | -0.415 | 0.000 |
| predicted_SLG | 0.404 | 0.500 | 0.500 | Hitting_SLG | 0.417 | 1.000 | 0.083 | -0.500 |
| predicted_SO | 0.940 | 0.000 | 0.000 | Hitting_SO | 1.050 | 0.000 | -1.050 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 8 |
| Better Metrics | 3 |
| Worse Metrics | 7 |
| Biggest Boost | predicted_H: 0.9800 -> 2.0000 (boost 1.0200, better) |
| Biggest Deboost | predicted_SO: 0.9400 -> 0.0000 (deboost -0.9400, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 6 | 0 | 6 | 0 | 6 | - | predicted_H: 0.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. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 5 | 2 | 3 | 1 | 4 | predicted_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 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4332 -> 0.0000 (deboost -0.4332, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 5 | 4 | 1 | 4 | 1 | predicted_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 |
| 8 | lineup_integer_allocation | 8 | 1 | 7 | 1 | 7 | predicted_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 |
| 9 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 11 | play_by_play_realization | 3 | 2 | 1 | 3 | 0 | predicted_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 |
| 12 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 13 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.080 | - |
| predicted_3B | 0.040 | - |
| predicted_AB | 3.120 | - |
| predicted_AVG | 0.314 | - |
| predicted_BB | 0.360 | - |
| predicted_H | 0.980 | - |
| predicted_HR | 0.040 | - |
| predicted_OBP | 0.385 | - |
| predicted_R | 0.520 | - |
| predicted_RBI | 0.360 | - |
| predicted_SLG | 0.404 | - |
| predicted_SO | 0.940 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.080 | 0.000 |
| predicted_3B | 0.032 | -0.008 |
| predicted_AB | 3.046 | -0.074 |
| predicted_AVG | 0.296 | -0.018 |
| predicted_BB | 0.313 | -0.047 |
| predicted_H | 0.905 | -0.075 |
| predicted_HBP | 0.013 | - |
| predicted_HR | 0.046 | 0.006 |
| predicted_OBP | 0.360 | -0.025 |
| predicted_R | 0.450 | -0.070 |
| predicted_RBI | 0.332 | -0.028 |
| predicted_SLG | 0.390 | -0.014 |
| predicted_SO | 0.905 | -0.035 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.080 | 0.000 |
| predicted_3B | 0.032 | 0.000 |
| predicted_AB | 3.046 | 0.000 |
| predicted_AVG | 0.290 | -0.006 |
| predicted_BB | 0.311 | -0.002 |
| predicted_H | 0.884 | -0.021 |
| predicted_HBP | 0.013 | 0.000 |
| predicted_HR | 0.045 | -0.001 |
| predicted_OBP | 0.356 | -0.004 |
| predicted_R | 0.433 | -0.017 |
| predicted_RBI | 0.319 | -0.013 |
| predicted_SLG | 0.382 | -0.008 |
| predicted_SO | 0.910 | 0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.12), rates preserved: AVG=0.288 HR/AB=0.014
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.117 | 0.117 |
| 3B | 0.013 | 0.013 |
| BB | 0.349 | 0.349 |
| H | 0.817 | -0.183 |
| HR | 0.078 | 0.078 |
| RBI | 0.369 | 0.369 |
| SO | 0.960 | -0.040 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.117 |
| 3B | 0.000 | -0.013 |
| AB | 3.000 | 0.000 |
| AVG | 0.251 | - |
| BB | 0.000 | -0.349 |
| H | 1.000 | 0.183 |
| HR | 0.000 | -0.078 |
| OBP | 0.329 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.369 |
| SLG | 0.367 | - |
| SO | 1.000 | 0.040 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.080 |
| predicted_3B | 0.000 | -0.032 |
| predicted_AB | 3.000 | -0.046 |
| predicted_AVG | 0.251 | -0.039 |
| predicted_BB | 0.000 | -0.311 |
| predicted_H | 1.000 | 0.116 |
| predicted_HR | 0.000 | -0.045 |
| predicted_OBP | 0.329 | -0.027 |
| predicted_R | 0.000 | -0.433 |
| predicted_RBI | 0.000 | -0.319 |
| predicted_SLG | 0.367 | -0.015 |
| predicted_SO | 1.000 | 0.090 |
KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| AVG | 0.242 | -0.009 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.319 | -0.010 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.354 | -0.013 |
| SO | 1.000 | 0.000 |
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 2.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 11.000 | 2.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 3.000 | 0.1818 | 0.1818 | 0.1818 | 0.1818 | 0.0000 | 0.0000 | 0.0000 | 0.2727 |
| last_10 | 0.20 | 10 | - | 24.000 | 6.000 | 1.000 | 0.000 | 1.000 | 3.000 | 2.000 | 2.000 | 8.000 | 0.2500 | 0.2963 | 0.4167 | 0.2500 | 0.0417 | 0.1250 | 0.0833 | 0.3333 |
| season | 0.60 | 50 | - | 156.000 | 49.000 | 4.000 | 2.000 | 2.000 | 18.000 | 26.000 | 18.000 | 47.000 | 0.3141 | 0.3864 | 0.4038 | 0.3141 | 0.0128 | 0.1154 | 0.1154 | 0.3013 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0800 |
| predicted_3B | 0.0210 |
| predicted_AB | 2.9390 |
| predicted_AVG | 0.2709 |
| predicted_BB | 0.2450 |
| predicted_H | 0.7960 |
| predicted_HBP | 0.0130 |
| predicted_HR | 0.0550 |
| predicted_OBP | 0.3242 |
| predicted_R | 0.3490 |
| predicted_RBI | 0.2910 |
| predicted_SLG | 0.3686 |
| predicted_SO | 0.8540 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.0800 | 0.0800 | 0.0800 | model_form_blend |
| predicted_3B | 0.0400 | 0.0210 | 0.0323 | model_form_blend |
| predicted_AB | 3.1200 | 2.9390 | 3.0463 | model_form_blend |
| predicted_AVG | 0.3140 | 0.2709 | 0.2964 | model_form_blend |
| predicted_BB | 0.3600 | 0.2450 | 0.3131 | model_form_blend |
| predicted_H | 0.9800 | 0.7960 | 0.9050 | model_form_blend |
| predicted_HBP | - | 0.0130 | 0.0130 | form_only |
| predicted_HR | 0.0400 | 0.0550 | 0.0461 | model_form_blend |
| predicted_OBP | 0.3850 | 0.3242 | 0.3602 | model_form_blend |
| predicted_R | 0.5200 | 0.3490 | 0.4503 | model_form_blend |
| predicted_RBI | 0.3600 | 0.2910 | 0.3319 | model_form_blend |
| predicted_SLG | 0.4040 | 0.3686 | 0.3896 | model_form_blend |
| predicted_SO | 0.9400 | 0.8540 | 0.9050 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 159 |
| Season rows before report date | 159 |
| Report year | 2026 |
| Profile rows used | 50 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 2 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 1 |
| Hitting_AVG | 1.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 6 |
| Hitting_substitutionOrder | 2 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | PH-DH |
| gameID | 20261004_SD@MIL |
| game_type | ph |
| mlbID | 669392 |
| note | Singled for Hays in the 8th. |
| playerID | 669392 |
| playerName | Samad Taylor |
| pos | LF |
| started | False |
| startingPosition | PH |
| team | SD |
| teamID | 23 |
| game_date | 2026-10-04 |
| sl_k_percent | 25.7 |
| sl_bb_percent | 10.3 |
| sl_woba | 0.356 |
| sl_xwoba | 0.309 |
| sl_xba | 0.256 |
| sl_xslg | 0.328 |
| sl_sweet_spot_percent | 33.3 |
| sl_barrel_batted_rate | 3.6 |
| sl_hard_hit_percent | 25.2 |
| sl_exit_velocity_avg | 85.9 |
| sl_launch_angle_avg | 9.0 |
| sl_whiff_percent | 25.2 |
| sl_swing_percent | 44.1 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.116 | 0.000 | 0.000 | Hitting_2B | 0.124 | 0.000 | -0.124 | 0.000 |
| predicted_3B | 0.009 | 0.000 | 0.000 | Hitting_3B | 0.012 | 0.000 | -0.012 | 0.000 |
| predicted_AB | 3.750 | 3.000 | 3.000 | Hitting_AB | 3.681 | 4.000 | -0.681 | -1.000 |
| predicted_AVG | 0.178 | 0.333 | 0.333 | Hitting_AVG | 0.231 | 0.000 | 0.102 | 0.333 |
| predicted_BB | 0.339 | 1.000 | 1.000 | Hitting_BB | 0.369 | 0.000 | 0.631 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.022 | 0.000 | -0.022 | 0.000 |
| predicted_H | 0.670 | 1.000 | 1.000 | Hitting_H | 0.851 | 0.000 | 0.149 | 1.000 |
| predicted_HR | 0.080 | 0.000 | 0.000 | Hitting_HR | 0.057 | 0.000 | -0.057 | 0.000 |
| predicted_OBP | 0.283 | 0.500 | 0.500 | Hitting_OBP | 0.311 | 0.000 | 0.189 | 0.500 |
| predicted_R | 0.411 | 1.000 | 1.000 | Hitting_R | 0.455 | 0.000 | 0.545 | 1.000 |
| predicted_RBI | 0.460 | 0.000 | 0.000 | Hitting_RBI | 0.356 | 0.000 | -0.356 | 0.000 |
| predicted_SB | - | 0.000 | 0.000 | BaseRunning_SB | 0.082 | 0.000 | -0.082 | 0.000 |
| predicted_SLG | 0.273 | 0.333 | 0.333 | Hitting_SLG | 0.318 | 0.000 | 0.015 | 0.333 |
| predicted_SO | 0.893 | 0.000 | 0.000 | Hitting_SO | 0.923 | 0.000 | -0.923 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 12 |
| Boosted Metrics | 6 |
| Deboosted Metrics | 6 |
| Better Metrics | 7 |
| Worse Metrics | 5 |
| Biggest Boost | predicted_BB: 0.3390 -> 1.0000 (boost 0.6610, better) |
| Biggest Deboost | predicted_SO: 0.8930 -> 0.0000 (deboost -0.8930, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 0 | 3 | 0 | 3 | - | predicted_AB: 3.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. |
| 3 | team_form_snapshot | 1 | 0 | 1 | 0 | 1 | - | 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) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 2 | 6 | 1 | 7 | predicted_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 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=21.0, weight=0.165, BvP AVG=0.238) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3369 -> 0.0000 (deboost -0.3369, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_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 |
| 9 | lineup_integer_allocation | 9 | 4 | 5 | 3 | 6 | predicted_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 |
| 10 | embedded_savant_player_context | 0 | 0 | 0 | 0 | 0 | - | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | kpi_run_environment | 3 | 0 | 3 | 0 | 3 | - | 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 |
| 12 | play_by_play_realization | 4 | 3 | 1 | 4 | 0 | predicted_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 |
| 13 | simulation_box_score_reference | 0 | 0 | 0 | 0 | 0 | - | - | Attached simulation box score without overwriting model prediction |
| 14 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.116 | - |
| predicted_3B | 0.009 | - |
| predicted_AB | 3.750 | - |
| predicted_AVG | 0.178 | - |
| predicted_BB | 0.339 | - |
| predicted_H | 0.670 | - |
| predicted_HR | 0.080 | - |
| predicted_OBP | 0.283 | - |
| predicted_R | 0.411 | - |
| predicted_RBI | 0.460 | - |
| predicted_SLG | 0.273 | - |
| predicted_SO | 0.893 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.106 | -0.010 |
| predicted_3B | 0.008 | -0.001 |
| predicted_AB | 3.582 | -0.168 |
| predicted_AVG | 0.177 | -0.001 |
| predicted_BB | 0.332 | -0.007 |
| predicted_H | 0.635 | -0.035 |
| predicted_HBP | 0.164 | - |
| predicted_HR | 0.063 | -0.017 |
| predicted_OBP | 0.282 | -0.001 |
| predicted_R | 0.350 | -0.061 |
| predicted_RBI | 0.448 | -0.012 |
| predicted_SLG | 0.260 | -0.013 |
| predicted_SO | 0.894 | 0.001 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.106 | 0.000 |
| predicted_3B | 0.008 | 0.000 |
| predicted_AB | 3.582 | 0.000 |
| predicted_AVG | 0.173 | -0.004 |
| predicted_BB | 0.330 | -0.002 |
| predicted_H | 0.621 | -0.014 |
| predicted_HBP | 0.164 | 0.000 |
| predicted_HR | 0.061 | -0.002 |
| predicted_OBP | 0.243 | -0.039 |
| predicted_R | 0.337 | -0.013 |
| predicted_RBI | 0.431 | -0.017 |
| predicted_SLG | 0.259 | -0.002 |
| predicted_SO | 0.900 | 0.006 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.75), rates preserved: AVG=0.168 HR/AB=0.016
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=21.0, weight=0.165, BvP AVG=0.238)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.113 | 0.113 |
| 3B | 0.008 | 0.008 |
| BB | 0.350 | 0.350 |
| H | 0.754 | -0.246 |
| HR | 0.085 | 0.085 |
| RBI | 0.330 | 0.330 |
| SO | 0.831 | -0.169 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.113 |
| 3B | 0.000 | -0.008 |
| AB | 3.000 | 0.000 |
| AVG | 0.226 | - |
| BB | 0.000 | -0.350 |
| H | 0.000 | -0.754 |
| HR | 0.000 | -0.085 |
| OBP | 0.305 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.330 |
| SLG | 0.340 | - |
| SO | 1.000 | 0.169 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.106 |
| predicted_3B | 0.000 | -0.008 |
| predicted_AB | 3.000 | -0.582 |
| predicted_AVG | 0.226 | 0.053 |
| predicted_BB | 0.000 | -0.330 |
| predicted_H | 0.000 | -0.621 |
| predicted_HR | 0.000 | -0.061 |
| predicted_OBP | 0.305 | 0.062 |
| predicted_R | 0.000 | -0.337 |
| predicted_RBI | 0.000 | -0.431 |
| predicted_SLG | 0.340 | 0.081 |
| predicted_SO | 1.000 | 0.100 |
KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| AVG | 0.218 | -0.008 |
| BB | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| OBP | 0.295 | -0.010 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SLG | 0.328 | -0.012 |
| SO | 1.000 | 0.000 |
Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 1.000 | 1.000 |
| H | 1.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 1.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 1.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | 0.000 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 15.000 | 1.000 | 0.000 | 0.000 | 0.000 | 2.000 | 0.000 | 2.000 | 4.000 | 0.0667 | 0.2632 | 0.0667 | 0.0667 | 0.0000 | 0.1333 | 0.1333 | 0.2667 |
| last_10 | 0.20 | 10 | - | 32.000 | 4.000 | 1.000 | 0.000 | 0.000 | 6.000 | 1.000 | 2.000 | 10.000 | 0.1250 | 0.2222 | 0.1562 | 0.1250 | 0.0000 | 0.1875 | 0.0625 | 0.3125 |
| season | 0.60 | 112 | - | 390.000 | 86.000 | 13.000 | 1.000 | 7.000 | 42.000 | 46.000 | 38.000 | 100.000 | 0.2205 | 0.3028 | 0.3128 | 0.2205 | 0.0180 | 0.1077 | 0.0974 | 0.2564 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0930 |
| predicted_3B | 0.0060 |
| predicted_AB | 3.3600 |
| predicted_AVG | 0.1756 |
| predicted_BB | 0.3220 |
| predicted_H | 0.5900 |
| predicted_HBP | 0.1640 |
| predicted_HR | 0.0410 |
| predicted_OBP | 0.2805 |
| predicted_R | 0.2700 |
| predicted_RBI | 0.4320 |
| predicted_SLG | 0.2435 |
| predicted_SO | 0.8960 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1160 | 0.0930 | 0.1061 | model_form_blend |
| predicted_3B | 0.0090 | 0.0060 | 0.0077 | model_form_blend |
| predicted_AB | 3.7500 | 3.3600 | 3.5818 | model_form_blend |
| predicted_AVG | 0.1780 | 0.1756 | 0.1770 | model_form_blend |
| predicted_BB | 0.3390 | 0.3220 | 0.3317 | model_form_blend |
| predicted_H | 0.6700 | 0.5900 | 0.6355 | model_form_blend |
| predicted_HBP | - | 0.1640 | 0.1640 | form_only |
| predicted_HR | 0.0800 | 0.0410 | 0.0632 | model_form_blend |
| predicted_OBP | 0.2830 | 0.2805 | 0.2819 | model_form_blend |
| predicted_R | 0.4110 | 0.2700 | 0.3502 | model_form_blend |
| predicted_RBI | 0.4600 | 0.4320 | 0.4479 | model_form_blend |
| predicted_SLG | 0.2730 | 0.2435 | 0.2603 | model_form_blend |
| predicted_SO | 0.8930 | 0.8960 | 0.8943 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 404 |
| Season rows before report date | 404 |
| Report year | 2026 |
| Profile rows used | 112 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 2 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 9 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 2B |
| gameID | 20261004_SD@MIL |
| game_type | full |
| mlbID | 630105 |
| playerID | 630105 |
| playerName | Jake Cronenworth |
| pos | 2B |
| started | True |
| startingPosition | 2B |
| team | SD |
| teamID | 23 |
| game_date | 2026-10-04 |
| sl_k_percent | 22.8 |
| sl_bb_percent | 8.9 |
| sl_woba | 0.287 |
| sl_xwoba | 0.275 |
| sl_xba | 0.213 |
| sl_xslg | 0.308 |
| sl_sweet_spot_percent | 30.7 |
| sl_barrel_batted_rate | 3.9 |
| sl_hard_hit_percent | 29.7 |
| sl_exit_velocity_avg | 87.2 |
| sl_launch_angle_avg | 11.4 |
| sl_whiff_percent | 21.3 |
| sl_swing_percent | 45.8 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 1.000 | 1.000 | 1.000 | Pitching_BB | 1.111 | 2.000 | -0.111 | -1.000 |
| predicted_ER | 3.000 | 3.000 | 3.000 | Pitching_ER | 1.333 | 1.000 | 1.667 | 2.000 |
| predicted_H | 4.000 | 4.000 | 4.000 | Pitching_H | 3.333 | 3.000 | 0.667 | 1.000 |
| predicted_IP | 4.000 | 4.000 | 4.000 | Pitching_InningsPitched | 4.144 | 3.100 | -0.144 | 0.900 |
| predicted_SO | 2.000 | 2.000 | 2.000 | Pitching_SO | 5.111 | 4.000 | -3.111 | -2.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_rate_projection |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 4 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 2 |
| Better Metrics | 0 |
| Worse Metrics | 4 |
| Biggest Boost | predicted_ER: 2.0000 -> 3.0000 (boost 1.0000, worse) |
| Biggest Deboost | predicted_SO: 7.0000 -> 2.0000 (deboost -5.0000, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_rate_projection | 0 | 0 | 0 | 0 | 0 | - | - | Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty |
| 2 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 3 | team_form_adjustment | 0 | 0 | 0 | 0 | 0 | - | - | Club form: innings, run prevention and strikeout factors |
| 4 | savant_pitcher_quality | 0 | 0 | 0 | 0 | 0 | - | - | Statcast pitch quality: strikeout, walk, home-run and run-prevention factors |
| 5 | opposing_lineup_context | 0 | 0 | 0 | 0 | 0 | - | - | The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances |
| 6 | kpi_run_environment | 0 | 0 | 0 | 0 | 0 | - | - | KPI blend published; the staff line follows the published score, not a KPI rescale |
| 7 | pitcher_quality_guardrail | 0 | 0 | 0 | 0 | 0 | - | - | Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form. |
| 8 | play_by_play_realization | 4 | 2 | 2 | 0 | 4 | predicted_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 |
| 9 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
| Metric | Value | Delta vs Prev Step |
|---|
Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | - |
| predicted_ER | 2.000 | - |
| predicted_H | 3.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 5.000 | - |
| predicted_SO | 7.000 | - |
Club form: innings, run prevention and strikeout factors
| Metric | Value | Delta vs Prev Step |
|---|
Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
| Metric | Value | Delta vs Prev Step |
|---|
The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances
| Metric | Value | Delta vs Prev Step |
|---|
KPI blend published; the staff line follows the published score, not a KPI rescale
| Metric | Value | Delta vs Prev Step |
|---|
Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | 0.000 |
| predicted_ER | 2.000 | 0.000 |
| predicted_H | 3.000 | 0.000 |
| predicted_HR | 0.000 | 0.000 |
| predicted_IP | 5.000 | 0.000 |
| predicted_SO | 7.000 | 0.000 |
Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| BB | 1.000 | - |
| BF | 19.000 | - |
| ER | 3.000 | - |
| H | 4.000 | - |
| HR | 0.000 | - |
| IP | 4.000 | - |
| Pitches | 69.000 | - |
| R | 3.000 | - |
| SO | 2.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 22.000 | 4.000 | 18.000 | 4.000 | 22.000 | 2.000 | 1.6364 | 1.0000 | 0.1818 | 0.8182 | 0.1818 | 1.0000 | 0.0909 |
| last_10 | 0.35 | 9 | 38.000 | 12.000 | 30.000 | 10.000 | 46.000 | 2.000 | 2.8421 | 1.0526 | 0.3158 | 0.7895 | 0.2632 | 1.2105 | 0.0526 |
| season | 0.20 | 9 | 38.000 | 12.000 | 30.000 | 10.000 | 46.000 | 2.000 | 2.8421 | 1.0526 | 0.3158 | 0.7895 | 0.2632 | 1.2105 | 0.0526 |
| Metric | Value |
|---|---|
| predicted_BB | 1.2470 |
| predicted_ER | 1.5230 |
| predicted_ERA | 2.9981 |
| predicted_H | 3.9790 |
| predicted_HR | 0.4650 |
| predicted_IP | 4.2000 |
| predicted_SO | 4.7000 |
| predicted_WHIP | 1.1433 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 1.0000 | 1.2470 | 1.1233 | model_form_blend |
| predicted_ER | 2.0000 | 1.5230 | 1.7619 | model_form_blend |
| predicted_ERA | - | 2.9981 | 2.9981 | form_only |
| predicted_H | 3.0000 | 3.9790 | 3.4886 | model_form_blend |
| predicted_HR | 0.0000 | 0.4650 | 0.2321 | model_form_blend |
| predicted_IP | 5.0000 | 4.2000 | 5.0000 | model_form_blend |
| predicted_SO | 7.0000 | 4.7000 | 5.8520 | model_form_blend |
| predicted_WHIP | - | 1.1433 | 1.1433 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 9 |
| Season rows before report date | 9 |
| Report year | 2026 |
| Profile rows used | 9 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 4.0 |
| H | 4 |
| R | 3 |
| ER | 3 |
| BB | 1 |
| SO | 2 |
| HR | 0 |
| BF | 19 |
| Pitches | 69 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 2 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 15 |
| Pitching_ER | 1 |
| Pitching_ERA | 2.70 |
| Pitching_Flyouts | 4 |
| Pitching_Groundouts | 1 |
| Pitching_H | 3 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 3.1 |
| Pitching_Pitches | 66 |
| Pitching_R | 1 |
| Pitching_SO | 4 |
| Pitching_Strikes | 36 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 1 |
| allPositionsPlayed | P |
| gameID | 20260930_CHC@SD |
| game_type | full |
| mlbID | 601713 |
| playerID | 601713 |
| playerName | Nick Pivetta |
| pos | P |
| started | True |
| startingPosition | P |
| team | SD |
| teamID | 23 |
| game_date | 2026-09-30 |
| sl_k_percent | 30.0 |
| sl_bb_percent | 5.7 |
| sl_woba | 0.249 |
| sl_xwoba | 0.277 |
| sl_sweet_spot_percent | 34.8 |
| sl_barrel_batted_rate | 10.1 |
| sl_hard_hit_percent | 38.2 |
| sl_whiff_percent | 22.8 |
| sl_swing_percent | 47.8 |
| sl_avg_best_speed | 80.197836591 |
| sl_avg_hyper_speed | 93.799081364 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 1.000 | 1.000 | 1.000 | Pitching_BB | 0.310 | 0.000 | 0.690 | 1.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.254 | 0.000 | -0.254 | 0.000 |
| predicted_H | 2.000 | 2.000 | 2.000 | Pitching_H | 0.831 | 0.000 | 1.169 | 2.000 |
| predicted_IP | 1.100 | 1.100 | 1.100 | Pitching_InningsPitched | 0.949 | 0.200 | 0.151 | 0.900 |
| predicted_SO | 1.000 | 1.000 | 1.000 | Pitching_SO | 1.197 | 0.000 | -0.197 | 1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_rate_projection |
| To | current_json_final |
| Dominant Effect | neutral |
| Changed Metrics | 4 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 2 |
| Better Metrics | 2 |
| Worse Metrics | 2 |
| Biggest Boost | predicted_H: 1.0000 -> 2.0000 (boost 1.0000, worse) |
| Biggest Deboost | predicted_BB: 2.0000 -> 1.0000 (deboost -1.0000, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_rate_projection | 0 | 0 | 0 | 0 | 0 | - | - | Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty |
| 2 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 3 | team_form_adjustment | 0 | 0 | 0 | 0 | 0 | - | - | Club form: innings, run prevention and strikeout factors |
| 4 | savant_pitcher_quality | 0 | 0 | 0 | 0 | 0 | - | - | Statcast pitch quality: strikeout, walk, home-run and run-prevention factors |
| 5 | opposing_lineup_context | 0 | 0 | 0 | 0 | 0 | - | - | The nine hitters he faces: batter quality, weighted by plate appearances |
| 6 | kpi_run_environment | 0 | 0 | 0 | 0 | 0 | - | - | KPI blend published; the staff line follows the published score, not a KPI rescale |
| 7 | play_by_play_realization | 4 | 2 | 2 | 2 | 2 | predicted_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 |
| 8 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
| Metric | Value | Delta vs Prev Step |
|---|
Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 2.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 1.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.333 | - |
| predicted_SO | 0.000 | - |
Club form: innings, run prevention and strikeout factors
| Metric | Value | Delta vs Prev Step |
|---|
Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
| Metric | Value | Delta vs Prev Step |
|---|
The nine hitters he faces: batter quality, weighted by plate appearances
| Metric | Value | Delta vs Prev Step |
|---|
KPI blend published; the staff line follows the published score, not a KPI rescale
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| BB | 1.000 | - |
| BF | 7.000 | - |
| ER | 0.000 | - |
| H | 2.000 | - |
| HR | 0.000 | - |
| IP | 1.100 | - |
| Pitches | 29.000 | - |
| R | 0.000 | - |
| SO | 1.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 7.200 | 0.000 | 2.000 | 4.000 | 9.000 | 0.000 | 0.0000 | 0.7826 | 0.0000 | 0.2609 | 0.5217 | 1.1739 | 0.0000 |
| last_10 | 0.35 | 10 | 13.100 | 1.000 | 6.000 | 4.000 | 15.000 | 1.000 | 0.6750 | 0.7500 | 0.0750 | 0.4500 | 0.3000 | 1.1250 | 0.0750 |
| season | 0.20 | 69 | 77.200 | 14.000 | 53.000 | 21.000 | 85.000 | 4.000 | 1.6223 | 0.9528 | 0.1803 | 0.6824 | 0.2704 | 1.0944 | 0.0515 |
| Metric | Value |
|---|---|
| predicted_BB | 0.5460 |
| predicted_ER | 0.2370 |
| predicted_ERA | 1.5249 |
| predicted_H | 0.7650 |
| predicted_HR | 0.0880 |
| predicted_IP | 1.1000 |
| predicted_SO | 1.5250 |
| predicted_WHIP | 0.9383 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 2.0000 | 0.5460 | 1.2009 | model_form_blend |
| predicted_ER | 0.0000 | 0.2370 | 0.1302 | model_form_blend |
| predicted_ERA | - | 1.5249 | 1.5249 | form_only |
| predicted_H | 1.0000 | 0.7650 | 0.8709 | model_form_blend |
| predicted_HR | 0.0000 | 0.0880 | 0.0484 | model_form_blend |
| predicted_IP | 1.1000 | 1.1000 | 1.1000 | model_form_blend |
| predicted_SO | 0.0000 | 1.5250 | 0.8381 | model_form_blend |
| predicted_WHIP | - | 0.9383 | 0.9383 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 71 |
| Season rows before report date | 71 |
| Report year | 2026 |
| Profile rows used | 69 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.1 |
| H | 2 |
| R | 0 |
| ER | 0 |
| BB | 1 |
| SO | 1 |
| HR | 0 |
| BF | 7 |
| Pitches | 29 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 3 |
| Pitching_ER | 0 |
| Pitching_ERA | 0.00 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 3 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 2 |
| Pitching_Inherited Runners Scored | 1 |
| Pitching_InningsPitched | 0.2 |
| Pitching_Pitches | 13 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 8 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | H |
| Pitching_pitchingOrder | 3 |
| allPositionsPlayed | P |
| gameID | 20261004_SD@MIL |
| game_type | full |
| mlbID | 699134 |
| playerID | 699134 |
| playerName | Bradgley Rodriguez |
| pos | P |
| started | False |
| startingPosition | P |
| team | SD |
| teamID | 23 |
| game_date | 2026-10-04 |
| sl_k_percent | 26.9 |
| sl_bb_percent | 6.6 |
| sl_woba | 0.266 |
| sl_xwoba | 0.239 |
| sl_sweet_spot_percent | 27.0 |
| sl_barrel_batted_rate | 4.5 |
| sl_hard_hit_percent | 30.0 |
| sl_whiff_percent | 30.1 |
| sl_swing_percent | 51.6 |
| sl_avg_best_speed | 76.26349102 |
| sl_avg_hyper_speed | 92.978718367 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.359 | 0.000 | -0.359 | 0.000 |
| predicted_ER | 1.000 | 1.000 | 1.000 | Pitching_ER | 0.359 | 1.000 | 0.641 | 0.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.885 | 3.000 | 0.115 | -2.000 |
| predicted_IP | 1.100 | 1.100 | 1.100 | Pitching_InningsPitched | 1.028 | 2.000 | 0.072 | -0.900 |
| predicted_SO | 1.000 | 1.000 | 1.000 | Pitching_SO | 1.397 | 2.000 | -0.397 | -1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_rate_projection |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 4 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 3 |
| Better Metrics | 3 |
| Worse Metrics | 1 |
| Biggest Boost | predicted_SO: 0.0000 -> 1.0000 (boost 1.0000, better) |
| Biggest Deboost | predicted_BB: 2.0000 -> 0.0000 (deboost -2.0000, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_rate_projection | 0 | 0 | 0 | 0 | 0 | - | - | Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty |
| 2 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 3 | team_form_adjustment | 0 | 0 | 0 | 0 | 0 | - | - | Club form: innings, run prevention and strikeout factors |
| 4 | savant_pitcher_quality | 0 | 0 | 0 | 0 | 0 | - | - | Statcast pitch quality: strikeout, walk, home-run and run-prevention factors |
| 5 | opposing_lineup_context | 0 | 0 | 0 | 0 | 0 | - | - | The nine hitters he faces: batter quality, weighted by plate appearances |
| 6 | kpi_run_environment | 0 | 0 | 0 | 0 | 0 | - | - | KPI blend published; the staff line follows the published score, not a KPI rescale |
| 7 | play_by_play_realization | 4 | 1 | 3 | 3 | 1 | predicted_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 |
| 8 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
| Metric | Value | Delta vs Prev Step |
|---|
Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 2.000 | - |
| predicted_ER | 1.000 | - |
| predicted_H | 2.000 | - |
| predicted_HR | 1.000 | - |
| predicted_IP | 1.333 | - |
| predicted_SO | 0.000 | - |
Club form: innings, run prevention and strikeout factors
| Metric | Value | Delta vs Prev Step |
|---|
Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
| Metric | Value | Delta vs Prev Step |
|---|
The nine hitters he faces: batter quality, weighted by plate appearances
| Metric | Value | Delta vs Prev Step |
|---|
KPI blend published; the staff line follows the published score, not a KPI rescale
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| BB | 0.000 | - |
| BF | 5.000 | - |
| ER | 1.000 | - |
| H | 1.000 | - |
| HR | 1.000 | - |
| IP | 1.100 | - |
| Pitches | 19.000 | - |
| R | 1.000 | - |
| SO | 1.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 7.100 | 2.000 | 6.000 | 2.000 | 6.000 | 1.000 | 2.4545 | 1.0909 | 0.2727 | 0.8182 | 0.2727 | 0.8182 | 0.1364 |
| last_10 | 0.35 | 10 | 11.100 | 3.000 | 8.000 | 4.000 | 13.000 | 1.000 | 2.3824 | 1.0588 | 0.2647 | 0.7059 | 0.3529 | 1.1471 | 0.0882 |
| season | 0.20 | 78 | 90.000 | 28.000 | 69.000 | 28.000 | 109.000 | 5.000 | 2.8000 | 1.0778 | 0.3111 | 0.7667 | 0.3111 | 1.2111 | 0.0556 |
| Metric | Value |
|---|---|
| predicted_BB | 0.3850 |
| predicted_ER | 0.3890 |
| predicted_ERA | 2.9475 |
| predicted_H | 0.9680 |
| predicted_HR | 0.1340 |
| predicted_IP | 1.1000 |
| predicted_SO | 1.1830 |
| predicted_WHIP | 1.1381 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 2.0000 | 0.3850 | 1.0949 | model_form_blend |
| predicted_ER | 1.0000 | 0.3890 | 0.6576 | model_form_blend |
| predicted_ERA | - | 2.9475 | 2.9475 | form_only |
| predicted_H | 2.0000 | 0.9680 | 1.4216 | model_form_blend |
| predicted_HR | 1.0000 | 0.1340 | 0.5147 | model_form_blend |
| predicted_IP | 1.1000 | 1.1000 | 1.1000 | model_form_blend |
| predicted_SO | 0.0000 | 1.1830 | 0.6630 | model_form_blend |
| predicted_WHIP | - | 1.1381 | 1.1381 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 78 |
| Season rows before report date | 78 |
| Report year | 2026 |
| Profile rows used | 78 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.1 |
| H | 1 |
| R | 1 |
| ER | 1 |
| BB | 0 |
| SO | 1 |
| HR | 1 |
| BF | 5 |
| Pitches | 19 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 9 |
| Pitching_ER | 1 |
| Pitching_ERA | 2.25 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 2 |
| Pitching_H | 3 |
| Pitching_HBP | 0 |
| Pitching_HR | 1 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 2.0 |
| Pitching_Pitches | 31 |
| Pitching_R | 1 |
| Pitching_SO | 2 |
| Pitching_Strikes | 20 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | L |
| Pitching_pitchingOrder | 5 |
| allPositionsPlayed | P |
| gameID | 20261003_SD@MIL |
| game_type | full |
| mlbID | 670970 |
| playerID | 670970 |
| playerName | Adrian Morejon |
| pos | P |
| started | False |
| startingPosition | P |
| team | SD |
| teamID | 23 |
| game_date | 2026-10-03 |
| sl_k_percent | 30.4 |
| sl_bb_percent | 8.0 |
| sl_woba | 0.244 |
| sl_xwoba | 0.237 |
| sl_sweet_spot_percent | 28.3 |
| sl_barrel_batted_rate | 2.8 |
| sl_hard_hit_percent | 32.5 |
| sl_whiff_percent | 34.2 |
| sl_swing_percent | 52.6 |
| sl_avg_best_speed | 74.331806132 |
| sl_avg_hyper_speed | 93.323366588 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 1.000 | 1.000 | 1.000 | Pitching_BB | 0.275 | 1.000 | 0.725 | 0.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.250 | 0.000 | -0.250 | 0.000 |
| predicted_H | 0.000 | 0.000 | 0.000 | Pitching_H | 0.750 | 0.000 | -0.750 | 0.000 |
| predicted_IP | 1.000 | 1.000 | 1.000 | Pitching_InningsPitched | 0.850 | 1.000 | 0.150 | 0.000 |
| predicted_SO | 1.000 | 1.000 | 1.000 | Pitching_SO | 0.550 | 0.000 | 0.450 | 1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_rate_projection |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 3 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 1 |
| Better Metrics | 2 |
| Worse Metrics | 1 |
| Biggest Boost | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, worse) |
| Biggest Deboost | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_rate_projection | 0 | 0 | 0 | 0 | 0 | - | - | Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty |
| 2 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 3 | team_form_adjustment | 0 | 0 | 0 | 0 | 0 | - | - | Club form: innings, run prevention and strikeout factors |
| 4 | savant_pitcher_quality | 0 | 0 | 0 | 0 | 0 | - | - | Statcast pitch quality: strikeout, walk, home-run and run-prevention factors |
| 5 | opposing_lineup_context | 0 | 0 | 0 | 0 | 0 | - | - | The nine hitters he faces: batter quality, weighted by plate appearances |
| 6 | kpi_run_environment | 0 | 0 | 0 | 0 | 0 | - | - | KPI blend published; the staff line follows the published score, not a KPI rescale |
| 7 | play_by_play_realization | 3 | 2 | 1 | 2 | 1 | predicted_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 |
| 8 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
| Metric | Value | Delta vs Prev Step |
|---|
Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 1.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 0.000 | - |
Club form: innings, run prevention and strikeout factors
| Metric | Value | Delta vs Prev Step |
|---|
Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
| Metric | Value | Delta vs Prev Step |
|---|
The nine hitters he faces: batter quality, weighted by plate appearances
| Metric | Value | Delta vs Prev Step |
|---|
KPI blend published; the staff line follows the published score, not a KPI rescale
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| BB | 1.000 | - |
| BF | 4.000 | - |
| ER | 0.000 | - |
| H | 0.000 | - |
| HR | 0.000 | - |
| IP | 1.000 | - |
| Pitches | 18.000 | - |
| R | 0.000 | - |
| SO | 1.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 5.000 | 2.000 | 2.000 | 3.000 | 1.000 | 0.000 | 3.6000 | 1.0000 | 0.4000 | 0.4000 | 0.6000 | 0.2000 | 0.0000 |
| last_10 | 0.35 | 10 | 10.000 | 5.000 | 6.000 | 3.000 | 5.000 | 2.000 | 4.5000 | 0.9000 | 0.5000 | 0.6000 | 0.3000 | 0.5000 | 0.2000 |
| season | 0.20 | 40 | 36.100 | 10.000 | 30.000 | 11.000 | 22.000 | 5.000 | 2.4771 | 1.1284 | 0.2752 | 0.8257 | 0.3028 | 0.6055 | 0.1376 |
| Metric | Value |
|---|---|
| predicted_BB | 0.4140 |
| predicted_ER | 0.4510 |
| predicted_ERA | 4.0610 |
| predicted_H | 0.7270 |
| predicted_HR | 0.1180 |
| predicted_IP | 1.0000 |
| predicted_SO | 0.6050 |
| predicted_WHIP | 1.1404 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.4140 | 0.1992 | model_form_blend |
| predicted_ER | 0.0000 | 0.4510 | 0.2170 | model_form_blend |
| predicted_ERA | - | 4.0610 | 4.0610 | form_only |
| predicted_H | 1.0000 | 0.7270 | 0.8687 | model_form_blend |
| predicted_HR | 0.0000 | 0.1180 | 0.0568 | model_form_blend |
| predicted_IP | 1.0000 | 1.0000 | 1.0000 | model_form_blend |
| predicted_SO | 0.0000 | 0.6050 | 0.2910 | model_form_blend |
| predicted_WHIP | - | 1.1404 | 1.1404 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 40 |
| Season rows before report date | 40 |
| Report year | 2026 |
| Profile rows used | 40 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.0 |
| H | 0 |
| R | 0 |
| ER | 0 |
| BB | 1 |
| SO | 1 |
| HR | 0 |
| BF | 4 |
| Pitches | 18 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 1 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 4 |
| Pitching_ER | 0 |
| Pitching_ERA | 0.00 |
| Pitching_Flyouts | 1 |
| Pitching_Groundouts | 1 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.0 |
| Pitching_Pitches | 16 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 9 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 4 |
| allPositionsPlayed | P |
| gameID | 20261003_SD@MIL |
| game_type | full |
| mlbID | 592094 |
| playerID | 592094 |
| playerName | Jason Adam |
| pos | P |
| started | False |
| startingPosition | P |
| team | SD |
| teamID | 23 |
| game_date | 2026-10-03 |
| sl_k_percent | 15.5 |
| sl_bb_percent | 7.0 |
| sl_woba | 0.307 |
| sl_xwoba | 0.3 |
| sl_sweet_spot_percent | 26.2 |
| sl_barrel_batted_rate | 7.5 |
| sl_hard_hit_percent | 37.4 |
| sl_whiff_percent | 28.5 |
| sl_swing_percent | 52.3 |
| sl_avg_best_speed | 77.065990566 |
| sl_avg_hyper_speed | 93.431740849 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.426 | 3.000 | -0.426 | -3.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.221 | 2.000 | -0.221 | -2.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.574 | 1.000 | 0.426 | 0.000 |
| predicted_IP | 1.100 | 1.100 | 1.100 | Pitching_InningsPitched | 1.010 | 1.200 | 0.090 | -0.100 |
| predicted_SO | 0.000 | 0.000 | 0.000 | Pitching_SO | 1.956 | 2.000 | -1.956 | -2.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_rate_projection |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 4 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 3 |
| Better Metrics | 3 |
| Worse Metrics | 1 |
| Biggest Boost | predicted_IP: 0.3333 -> 1.1000 (boost 0.7667, better) |
| Biggest Deboost | predicted_ER: 1.0000 -> 0.0000 (deboost -1.0000, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_rate_projection | 0 | 0 | 0 | 0 | 0 | - | - | Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty |
| 2 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 3 | team_form_adjustment | 0 | 0 | 0 | 0 | 0 | - | - | Club form: innings, run prevention and strikeout factors |
| 4 | savant_pitcher_quality | 0 | 0 | 0 | 0 | 0 | - | - | Statcast pitch quality: strikeout, walk, home-run and run-prevention factors |
| 5 | opposing_lineup_context | 0 | 0 | 0 | 0 | 0 | - | - | The nine hitters he faces: batter quality, weighted by plate appearances |
| 6 | kpi_run_environment | 0 | 0 | 0 | 0 | 0 | - | - | KPI blend published; the staff line follows the published score, not a KPI rescale |
| 7 | play_by_play_realization | 4 | 1 | 3 | 3 | 1 | predicted_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 |
| 8 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Published player line stored in the game JSON (model predictions and finalized integer line) |
{
"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"
}
}
}Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
| Metric | Value | Delta vs Prev Step |
|---|
Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 1.000 | - |
| predicted_H | 2.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 0.333 | - |
| predicted_SO | 1.000 | - |
Club form: innings, run prevention and strikeout factors
| Metric | Value | Delta vs Prev Step |
|---|
Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
| Metric | Value | Delta vs Prev Step |
|---|
The nine hitters he faces: batter quality, weighted by plate appearances
| Metric | Value | Delta vs Prev Step |
|---|
KPI blend published; the staff line follows the published score, not a KPI rescale
| Metric | Value | Delta vs Prev Step |
|---|
Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| BB | 0.000 | - |
| BF | 5.000 | - |
| ER | 0.000 | - |
| H | 1.000 | - |
| HR | 0.000 | - |
| IP | 1.100 | - |
| Pitches | 28.000 | - |
| R | 0.000 | - |
| SO | 0.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 5.200 | 6.000 | 6.000 | 6.000 | 10.000 | 0.000 | 9.5294 | 2.1176 | 1.0588 | 1.0588 | 1.0588 | 1.7647 | 0.0000 |
| last_10 | 0.35 | 10 | 11.100 | 7.000 | 9.000 | 8.000 | 20.000 | 1.000 | 5.5588 | 1.5000 | 0.6177 | 0.7941 | 0.7059 | 1.7647 | 0.0882 |
| season | 0.20 | 68 | 72.200 | 15.000 | 39.000 | 29.000 | 133.000 | 3.000 | 1.8578 | 0.9358 | 0.2064 | 0.5367 | 0.3991 | 1.8303 | 0.0413 |
| Metric | Value |
|---|---|
| predicted_BB | 0.5810 |
| predicted_ER | 0.5660 |
| predicted_ERA | 6.1085 |
| predicted_H | 0.7440 |
| predicted_HR | 0.0550 |
| predicted_IP | 1.0000 |
| predicted_SO | 1.3060 |
| predicted_WHIP | 1.5901 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.5810 | 0.3163 | model_form_blend |
| predicted_ER | 1.0000 | 0.5660 | 0.7637 | model_form_blend |
| predicted_ERA | - | 6.1085 | 6.1085 | form_only |
| predicted_H | 2.0000 | 0.7440 | 1.3162 | model_form_blend |
| predicted_HR | 0.0000 | 0.0550 | 0.0299 | model_form_blend |
| predicted_IP | 0.1000 | 1.0000 | 0.2000 | model_form_blend |
| predicted_SO | 1.0000 | 1.3060 | 1.1666 | model_form_blend |
| predicted_WHIP | - | 1.5901 | 1.5901 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 68 |
| Season rows before report date | 68 |
| Report year | 2026 |
| Profile rows used | 68 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.1 |
| H | 1 |
| R | 0 |
| ER | 0 |
| BB | 0 |
| SO | 0 |
| HR | 0 |
| BF | 5 |
| Pitches | 28 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 3 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 9 |
| Pitching_ER | 2 |
| Pitching_ERA | 6.75 |
| Pitching_Flyouts | 2 |
| Pitching_Groundouts | 1 |
| Pitching_H | 1 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.2 |
| Pitching_Pitches | 40 |
| Pitching_R | 2 |
| Pitching_SO | 2 |
| Pitching_Strikes | 21 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | L, BS |
| Pitching_pitchingOrder | 4 |
| allPositionsPlayed | P |
| gameID | 20261004_SD@MIL |
| game_type | full |
| mlbID | 695243 |
| playerID | 695243 |
| playerName | Mason Miller |
| pos | P |
| started | False |
| startingPosition | P |
| team | SD |
| teamID | 23 |
| game_date | 2026-10-04 |
| sl_k_percent | 47.4 |
| sl_bb_percent | 9.6 |
| sl_woba | 0.208 |
| sl_xwoba | 0.201 |
| sl_sweet_spot_percent | 31.3 |
| sl_barrel_batted_rate | 7.0 |
| sl_hard_hit_percent | 28.7 |
| sl_whiff_percent | 45.3 |
| sl_swing_percent | 47.3 |
| sl_avg_best_speed | 75.813395439 |
| sl_avg_hyper_speed | 92.786414386 |