20260429_ARI@MIL
20260429_ARI@MIL.json • 2026-04-29
Final simulation is structurally valid with warnings to review. Risk score: 70.
Action summary - what to fix first
| Level | Problem group / fix | Count | Teams | Example |
|---|---|---|---|---|
| WARN | Current payload is not synced to final box score The final simulation box score is treated as the source of truth. Sync game.predicted_performance finalized_stats/pitcher projections after scoring_simulation, or stop comparing that pre-simulation payload as final output. | 0C / 0E / 4W | ARI, MIL | ARI current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=30, sim=40; H: current=8, sim=13; 2B: current=0, sim=1; BB: current=0, sim=5; SO: current=9, sim=7). ARI current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=4, sim=8; R: current=4, sim=6; ER: current=4, sim=6; BB: current=0, sim=3; SO: current=6, sim=7; HR: current=0, sim=2). |
| WARN | team_recent_performance record bug wins and win_pct do not agree. Either calculate wins correctly or derive win_pct directly as wins/games_analyzed. | 0C / 0E / 2W | ARI, MIL | ARI wins=0 over games_analyzed=28 implies win_pct=0.000, but JSON has 0.500. MIL wins=0 over games_analyzed=27 implies win_pct=0.000, but JSON has 0.500. |
| WARN | Prediction target vs final simulation drift The inning simulation can vary from ML target, but large drift should be reviewed or explicitly documented as acceptable variance. | 0C / 0E / 1W | - | Final score drifted from enhanced target: target 5-6, final 2-6 (delta 3). |
Problems table - exact rows
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | ARI | CURRENT_FINALIZED_MATCH_BOX | ARI current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=30, sim=40; H: current=8, sim=13; 2B: current=0, sim=1; BB: current=0, sim=5; SO: current=9, sim=7). | |||
| WARN | current_vs_final | cross-schema | ARI | CURRENT_FINALIZED_MATCH_BOX | ARI current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=4, sim=8; R: current=4, sim=6; ER: current=4, sim=6; BB: current=0, sim=3; SO: current=6, sim=7; HR: current=0, sim=2). | |||
| WARN | current_vs_final | cross-schema | MIL | CURRENT_FINALIZED_MATCH_BOX | MIL current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=31; 2B: current=0, sim=1; HR: current=0, sim=2; RBI: current=3, sim=6; BB: current=1, sim=3; SO: current=9, sim=7; SF: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | MIL | CURRENT_FINALIZED_MATCH_BOX | MIL current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=2, sim=13; BB: current=0, sim=5; SO: current=10, sim=7). | |||
| WARN | score | TARGET_SCORE_DRIFT | Final score drifted from enhanced target: target 5-6, final 2-6 (delta 3). | |||||
| WARN | team_recent_performance | current | ARI | TEAM_RECENT_RECORD | ARI wins=0 over games_analyzed=28 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | MIL | TEAM_RECENT_RECORD | MIL wins=0 over games_analyzed=27 implies win_pct=0.000, but JSON has 0.500. |
All findings - complete audit trail
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | ARI | CURRENT_FINALIZED_MATCH_BOX | ARI current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=30, sim=40; H: current=8, sim=13; 2B: current=0, sim=1; BB: current=0, sim=5; SO: current=9, sim=7). | |||
| WARN | current_vs_final | cross-schema | ARI | CURRENT_FINALIZED_MATCH_BOX | ARI current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=4, sim=8; R: current=4, sim=6; ER: current=4, sim=6; BB: current=0, sim=3; SO: current=6, sim=7; HR: current=0, sim=2). | |||
| WARN | current_vs_final | cross-schema | MIL | CURRENT_FINALIZED_MATCH_BOX | MIL current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=31; 2B: current=0, sim=1; HR: current=0, sim=2; RBI: current=3, sim=6; BB: current=1, sim=3; SO: current=9, sim=7; SF: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | MIL | CURRENT_FINALIZED_MATCH_BOX | MIL current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=2, sim=13; BB: current=0, sim=5; SO: current=10, sim=7). | |||
| WARN | score | TARGET_SCORE_DRIFT | Final score drifted from enhanced target: target 5-6, final 2-6 (delta 3). | |||||
| WARN | team_recent_performance | current | ARI | TEAM_RECENT_RECORD | ARI wins=0 over games_analyzed=28 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | MIL | TEAM_RECENT_RECORD | MIL wins=0 over games_analyzed=27 implies win_pct=0.000, but JSON has 0.500. | |||
| INFO | current_payload | current | ARI | CURRENT_PITCHER_DUPLICATION | ARI pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | MIL | CURRENT_PITCHER_DUPLICATION | MIL pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. | |||||
| PASS | batting | current | ARI | BATTING_REALISM | current:ARI hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | MIL | BATTING_REALISM | current:MIL hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | ARI | BATTING_REALISM | simulation:ARI hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | MIL | BATTING_REALISM | simulation:MIL hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | ARI | BATTING_TOTALS_SUM | current:ARI batting totals equal summed player lines. | |||
| PASS | batting_totals | current | MIL | BATTING_TOTALS_SUM | current:MIL batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | ARI | BATTING_TOTALS_SUM | simulation:ARI batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | MIL | BATTING_TOTALS_SUM | simulation:MIL batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | ARI | BAT_PITCH_BB_MATCH | simulation:ARI batting walks match MIL pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | ARI | BAT_PITCH_HR_MATCH | simulation:ARI batting home runs match MIL pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | ARI | BAT_PITCH_H_MATCH | simulation:ARI batting hits match MIL pitching: 13. | |||
| PASS | boxscore_crosscheck | simulation | ARI | BAT_PITCH_SO_MATCH | simulation:ARI batting strikeouts match MIL pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | ARI | PA_BF_MATCH | simulation:ARI PA=45 matches MIL BF=45. | |||
| PASS | boxscore_crosscheck | simulation | ARI | RUNS_MATCH_FINAL | simulation:ARI runs match final score and opposing pitching runs: 2. | |||
| PASS | boxscore_crosscheck | simulation | MIL | BAT_PITCH_BB_MATCH | simulation:MIL batting walks match ARI pitching: 3. | |||
| PASS | boxscore_crosscheck | simulation | MIL | BAT_PITCH_HR_MATCH | simulation:MIL batting home runs match ARI pitching: 2. | |||
| PASS | boxscore_crosscheck | simulation | MIL | BAT_PITCH_H_MATCH | simulation:MIL batting hits match ARI pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | MIL | BAT_PITCH_SO_MATCH | simulation:MIL batting strikeouts match ARI pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | MIL | PA_BF_MATCH | simulation:MIL PA=35 matches ARI BF=35. | |||
| PASS | boxscore_crosscheck | simulation | MIL | RUNS_MATCH_FINAL | simulation:MIL runs match final score and opposing pitching runs: 6. | |||
| PASS | current_payload | current | ARI | CURRENT_LINEUP_SHAPE | ARI current lineup has 9 expected positions. | |||
| PASS | current_payload | current | ARI | CURRENT_MODEL_ZERO_FALLBACK | ARI current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | ARI | CURRENT_NAMES_PRESENT | ARI current hitter names are populated. | |||
| PASS | current_payload | current | MIL | CURRENT_LINEUP_SHAPE | MIL current lineup has 9 expected positions. | |||
| PASS | current_payload | current | MIL | CURRENT_MODEL_ZERO_FALLBACK | MIL current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | MIL | CURRENT_NAMES_PRESENT | MIL current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.393. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.607. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.607. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 8 is reasonably close to low-score expected_total_runs 10.3. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.303/0.707. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_OUTS | Inning 9 home marked not_played with empty stats. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: ARI 13, MIL 8. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: ARI 2 - MIL 6. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_ARI@MIL. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: ARI@MIL. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 155. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 199. | |||||
| PASS | pitch_count | simulation | ARI | PITCH_COUNT_PITCHER_MATCH | ARI pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | ARI | PITCH_COUNT_TOTAL_MATCH | ARI pitch_count_summary total, row sum, and pitching total all match: 155. | |||
| PASS | pitch_count | simulation | MIL | PITCH_COUNT_PITCHER_MATCH | MIL pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | MIL | PITCH_COUNT_TOTAL_MATCH | MIL pitch_count_summary total, row sum, and pitching total all match: 199. | |||
| PASS | pitching | current | ARI | PITCHING_REALISM | current:ARI pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | ARI | STARTER_PRESENT | current:ARI includes a starter/opener role. | |||
| PASS | pitching | current | MIL | PITCHING_REALISM | current:MIL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | MIL | STARTER_PRESENT | current:MIL includes a starter/opener role. | |||
| PASS | pitching | simulation | ARI | PITCHING_REALISM | simulation:ARI pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | ARI | STARTER_PRESENT | simulation:ARI includes a starter/opener role. | |||
| PASS | pitching | simulation | MIL | PITCHING_REALISM | simulation:MIL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | MIL | STARTER_PRESENT | simulation:MIL includes a starter/opener role. | |||
| PASS | pitching_totals | current | ARI | PITCHING_TOTALS_SUM | current:ARI pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | current | ARI | PITCHING_TOTALS_SUM | current:ARI pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | MIL | PITCHING_TOTALS_SUM | current:MIL pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | MIL | PITCHING_TOTALS_SUM | current:MIL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | ARI | PITCHING_TOTALS_SUM | simulation:ARI pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | simulation | ARI | PITCHING_TOTALS_SUM | simulation:ARI pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | MIL | PITCHING_TOTALS_SUM | simulation:MIL pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | MIL | PITCHING_TOTALS_SUM | simulation:MIL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: ARI 5 - 6 MIL. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: ARI 2 - 6 MIL. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: MIL wins 6-2. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.607. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 5/10 (0.500). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 5/10 (0.500). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: MIL wins 6-2. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: MIL wins 2-6. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 2-6. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 8. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: MIL wins 6-2. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | ARI | RECENT_FORM_RANGE | ARI recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | MIL | RECENT_FORM_RANGE | MIL recent hitting/pitching rates are in valid ranges. |
Passed checks
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| PASS | batting | current | ARI | BATTING_REALISM | current:ARI hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | MIL | BATTING_REALISM | current:MIL hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | ARI | BATTING_REALISM | simulation:ARI hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | MIL | BATTING_REALISM | simulation:MIL hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | ARI | BATTING_TOTALS_SUM | current:ARI batting totals equal summed player lines. | |||
| PASS | batting_totals | current | MIL | BATTING_TOTALS_SUM | current:MIL batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | ARI | BATTING_TOTALS_SUM | simulation:ARI batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | MIL | BATTING_TOTALS_SUM | simulation:MIL batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | ARI | BAT_PITCH_BB_MATCH | simulation:ARI batting walks match MIL pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | ARI | BAT_PITCH_HR_MATCH | simulation:ARI batting home runs match MIL pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | ARI | BAT_PITCH_H_MATCH | simulation:ARI batting hits match MIL pitching: 13. | |||
| PASS | boxscore_crosscheck | simulation | ARI | BAT_PITCH_SO_MATCH | simulation:ARI batting strikeouts match MIL pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | ARI | PA_BF_MATCH | simulation:ARI PA=45 matches MIL BF=45. | |||
| PASS | boxscore_crosscheck | simulation | ARI | RUNS_MATCH_FINAL | simulation:ARI runs match final score and opposing pitching runs: 2. | |||
| PASS | boxscore_crosscheck | simulation | MIL | BAT_PITCH_BB_MATCH | simulation:MIL batting walks match ARI pitching: 3. | |||
| PASS | boxscore_crosscheck | simulation | MIL | BAT_PITCH_HR_MATCH | simulation:MIL batting home runs match ARI pitching: 2. | |||
| PASS | boxscore_crosscheck | simulation | MIL | BAT_PITCH_H_MATCH | simulation:MIL batting hits match ARI pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | MIL | BAT_PITCH_SO_MATCH | simulation:MIL batting strikeouts match ARI pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | MIL | PA_BF_MATCH | simulation:MIL PA=35 matches ARI BF=35. | |||
| PASS | boxscore_crosscheck | simulation | MIL | RUNS_MATCH_FINAL | simulation:MIL runs match final score and opposing pitching runs: 6. | |||
| PASS | current_payload | current | ARI | CURRENT_LINEUP_SHAPE | ARI current lineup has 9 expected positions. | |||
| PASS | current_payload | current | ARI | CURRENT_MODEL_ZERO_FALLBACK | ARI current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | ARI | CURRENT_NAMES_PRESENT | ARI current hitter names are populated. | |||
| PASS | current_payload | current | MIL | CURRENT_LINEUP_SHAPE | MIL current lineup has 9 expected positions. | |||
| PASS | current_payload | current | MIL | CURRENT_MODEL_ZERO_FALLBACK | MIL current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | MIL | CURRENT_NAMES_PRESENT | MIL current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.393. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.607. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.607. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 8 is reasonably close to low-score expected_total_runs 10.3. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.303/0.707. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_OUTS | Inning 9 home marked not_played with empty stats. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: ARI 13, MIL 8. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: ARI 2 - MIL 6. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_ARI@MIL. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: ARI@MIL. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 155. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 199. | |||||
| PASS | pitch_count | simulation | ARI | PITCH_COUNT_PITCHER_MATCH | ARI pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | ARI | PITCH_COUNT_TOTAL_MATCH | ARI pitch_count_summary total, row sum, and pitching total all match: 155. | |||
| PASS | pitch_count | simulation | MIL | PITCH_COUNT_PITCHER_MATCH | MIL pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | MIL | PITCH_COUNT_TOTAL_MATCH | MIL pitch_count_summary total, row sum, and pitching total all match: 199. | |||
| PASS | pitching | current | ARI | PITCHING_REALISM | current:ARI pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | ARI | STARTER_PRESENT | current:ARI includes a starter/opener role. | |||
| PASS | pitching | current | MIL | PITCHING_REALISM | current:MIL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | MIL | STARTER_PRESENT | current:MIL includes a starter/opener role. | |||
| PASS | pitching | simulation | ARI | PITCHING_REALISM | simulation:ARI pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | ARI | STARTER_PRESENT | simulation:ARI includes a starter/opener role. | |||
| PASS | pitching | simulation | MIL | PITCHING_REALISM | simulation:MIL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | MIL | STARTER_PRESENT | simulation:MIL includes a starter/opener role. | |||
| PASS | pitching_totals | current | ARI | PITCHING_TOTALS_SUM | current:ARI pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | current | ARI | PITCHING_TOTALS_SUM | current:ARI pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | MIL | PITCHING_TOTALS_SUM | current:MIL pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | MIL | PITCHING_TOTALS_SUM | current:MIL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | ARI | PITCHING_TOTALS_SUM | simulation:ARI pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | simulation | ARI | PITCHING_TOTALS_SUM | simulation:ARI pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | MIL | PITCHING_TOTALS_SUM | simulation:MIL pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | MIL | PITCHING_TOTALS_SUM | simulation:MIL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: ARI 5 - 6 MIL. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: ARI 2 - 6 MIL. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: MIL wins 6-2. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.607. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 5/10 (0.500). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 5/10 (0.500). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: MIL wins 6-2. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: MIL wins 2-6. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 2-6. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 8. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: MIL wins 6-2. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | ARI | RECENT_FORM_RANGE | ARI recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | MIL | RECENT_FORM_RANGE | MIL recent hitting/pitching rates are in valid ranges. |
Info/context findings
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| INFO | current_payload | current | ARI | CURRENT_PITCHER_DUPLICATION | ARI pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | MIL | CURRENT_PITCHER_DUPLICATION | MIL pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
Score evolution
| step | away_runs | home_runs | confidence | description |
|---|---|---|---|---|
| historical_ml | 4.086047172546387 | 4.39590311050415 | Base ML historical model prediction | |
| variance_applied | 4 | 5 | Random variance applied (0.9-1.1) | |
| enhanced_prediction | 5 | 6 | 0.584 | Enhanced ML with recent form, H2H, low-score analysis |
| capped_target | 5 | 6 | Capped at max 12 realistic runs | |
| simulation_result | 2 | 6 | Final inning-by-inning simulation result |
Inning-by-inning linescore
| team | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | R | H |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ARI | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 2 | 13 |
| MIL | 2 | 0 | 0 | 0 | 3 | 0 | 0 | 1 | 0 | 6 | 8 |
Team totals - current + final simulation
| src | team | type | AB | H | 2B | 3B | HR | RBI | R | BB | SO | SF | HBP | SB | CS | IP | ER | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | ARI | batting | 30 | 8 | 0 | 0 | 0 | 2 | 2 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | ARI | pitching | 4 | 0 | 4 | 0 | 6 | 8.0 | 4 | 0 | 0 | ||||||||
| current | MIL | batting | 28 | 8 | 0 | 0 | 0 | 3 | 6 | 1 | 9 | 0 | 0 | 0 | 0 | ||||
| current | MIL | pitching | 2 | 0 | 2 | 0 | 10 | 9.0 | 2 | 0 | 0 | ||||||||
| simulation | ARI | batting | 40 | 13 | 1 | 0 | 0 | 2 | 2 | 5 | 7 | 0 | 0 | ||||||
| simulation | ARI | pitching | 8 | 2 | 6 | 3 | 7 | 8.0 | 6 | 35 | 155 | ||||||||
| simulation | MIL | batting | 31 | 8 | 1 | 0 | 2 | 6 | 6 | 3 | 7 | 1 | 0 | ||||||
| simulation | MIL | pitching | 13 | 0 | 2 | 5 | 7 | 9.0 | 2 | 45 | 199 |
Batting lines - current + final simulation
| src | team | order | pos | name | AB | H | 2B | 3B | HR | R | RBI | BB | SO | HBP | AVG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | ARI | 2B | Ketel Marte | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 | |
| current | ARI | 3B | Nolan Arenado | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | ARI | DH | Jose Fernandez | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | ARI | CF | Alek Thomas | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | ARI | RF | Corbin Carroll | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | ARI | LF | Lourdes Gurriel Jr. | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 | |
| current | ARI | 1B | Ildemaro Vargas | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.250 | |
| current | ARI | C | Adrian Del Castillo | 3 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0.333 | |
| current | ARI | SS | Geraldo Perdomo | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | MIL | C | William Contreras | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0.250 | |
| current | MIL | LF | Brandon Lockridge | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | MIL | CF | Blake Perkins | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 | |
| current | MIL | DH | Gary Sánchez | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | MIL | RF | Sal Frelick | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | MIL | 2B | Brice Turang | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | MIL | 3B | David Hamilton | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | MIL | 1B | Luis Rengifo | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | MIL | SS | Joey Ortiz | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| simulation | ARI | 1 | SS | Geraldo Perdomo | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0.333 |
| simulation | ARI | 2 | 2B | Ketel Marte | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.200 |
| simulation | ARI | 3 | RF | Corbin Carroll | 5 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.400 |
| simulation | ARI | 4 | C | Adrian Del Castillo | 5 | 3 | 0 | 0 | 0 | 1 | 1 | 0 | 2 | 0 | 0.600 |
| simulation | ARI | 5 | LF | Lourdes Gurriel Jr. | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0.250 |
| simulation | ARI | 6 | 1B | Ildemaro Vargas | 5 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.600 |
| simulation | ARI | 7 | 3B | Nolan Arenado | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.250 |
| simulation | ARI | 8 | DH | Jose Fernandez | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.200 |
| simulation | ARI | 9 | CF | Alek Thomas | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.000 |
| simulation | MIL | 1 | LF | Brandon Lockridge | 4 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | 2 | 0 | 0.500 |
| simulation | MIL | 2 | 2B | Brice Turang | 4 | 2 | 0 | 0 | 1 | 1 | 3 | 0 | 0 | 0 | 0.500 |
| simulation | MIL | 3 | C | William Contreras | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.250 |
| simulation | MIL | 4 | DH | Gary Sánchez | 3 | 2 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0.667 |
| simulation | MIL | 5 | 1B | Luis Rengifo | 3 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0.333 |
| simulation | MIL | 6 | 3B | David Hamilton | 3 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 2 | 0 | 0.000 |
| simulation | MIL | 7 | RF | Sal Frelick | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | MIL | 8 | CF | Blake Perkins | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | MIL | 9 | SS | Joey Ortiz | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0.000 |
Pitching lines - current + final simulation
| src | team | order | name | role | IP | H | R | ER | BB | SO | HR | BF | Pitches | sim_ERA | season_ERA | season_WHIP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | ARI | 1 | Eduardo Rodriguez | Starter | 8.0 | 4 | 4 | 4 | 0 | 6 | 0 | 0 | 0 | 4.50 | 2.89 | 1.32 |
| current | MIL | 1 | Brandon Sproat | Starter | 4.0 | 1 | 1 | 1 | 0 | 3 | 0 | 0 | 0 | 2.25 | 6.96 | 1.69 |
| current | MIL | 2 | Abner Uribe | Middle Reliever | 1.1 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 6.75 | 4.64 | 1.24 |
| current | MIL | 3 | Grant Anderson | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 3.03 | 1.18 |
| current | MIL | 4 | Trevor Megill | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 3.60 | 1.30 |
| current | MIL | 5 | Aaron Ashby | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0.00 | 2.81 | 1.63 |
| current | MIL | 6 | Angel Zerpa | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 7.50 | 2.04 | |
| simulation | ARI | 1 | Eduardo Rodriguez | Starter | 4.0 | 4 | 2 | 2 | 1 | 5 | 0 | 17 | 81 | 4.50 | 2.89 | 1.32 |
| simulation | ARI | 2 | Andrew Hoffmann | Reliever | 1.0 | 3 | 3 | 3 | 1 | 0 | 1 | 7 | 28 | 27.00 | ||
| simulation | ARI | 3 | Juan Morillo | Reliever | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 11 | 0.00 | ||
| simulation | ARI | 4 | Merrill Kelly | Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 15 | 0.00 | ||
| simulation | ARI | 5 | Ryne Nelson | Reliever | 1.0 | 1 | 1 | 1 | 1 | 1 | 1 | 5 | 20 | 9.00 | ||
| simulation | MIL | 1 | Brandon Sproat | Starter | 4.0 | 5 | 0 | 0 | 3 | 3 | 0 | 20 | 92 | 0.00 | 6.96 | 1.69 |
| simulation | MIL | 2 | Abner Uribe | Middle Reliever | 1.0 | 2 | 0 | 0 | 1 | 1 | 0 | 6 | 27 | 0.00 | 4.64 | 1.24 |
| simulation | MIL | 3 | Aaron Ashby | Middle Reliever | 1.0 | 2 | 1 | 1 | 1 | 1 | 0 | 6 | 24 | 9.00 | 2.81 | 1.63 |
| simulation | MIL | 4 | Trevor Megill | Middle Reliever | 1.0 | 1 | 0 | 0 | 0 | 0 | 0 | 4 | 18 | 0.00 | 3.60 | 1.30 |
| simulation | MIL | 5 | Angel Zerpa | Middle Reliever | 1.0 | 3 | 1 | 1 | 0 | 1 | 0 | 6 | 25 | 9.00 | 7.50 | 2.04 |
| simulation | MIL | 6 | Grant Anderson | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 13 | 0.00 | 3.03 | 1.18 |
Pitch count summary
| team | pitcher | role | IP | R | H | BB | SO | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|
| ARI | Eduardo Rodriguez | Starter | 4.0 | 2 | 4 | 1 | 5 | 17 | 81 |
| ARI | Andrew Hoffmann | Reliever | 1.0 | 3 | 3 | 1 | 0 | 7 | 28 |
| ARI | Juan Morillo | Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 11 |
| ARI | Merrill Kelly | Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 15 |
| ARI | Ryne Nelson | Reliever | 1.0 | 1 | 1 | 1 | 1 | 5 | 20 |
| MIL | Brandon Sproat | Starter | 4.0 | 0 | 5 | 3 | 3 | 20 | 92 |
| MIL | Abner Uribe | Middle Reliever | 1.0 | 0 | 2 | 1 | 1 | 6 | 27 |
| MIL | Aaron Ashby | Middle Reliever | 1.0 | 1 | 2 | 1 | 1 | 6 | 24 |
| MIL | Trevor Megill | Middle Reliever | 1.0 | 0 | 1 | 0 | 0 | 4 | 18 |
| MIL | Angel Zerpa | Middle Reliever | 1.0 | 1 | 3 | 0 | 1 | 6 | 25 |
| MIL | Grant Anderson | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 13 |
Audit rule catalog
| rule | status | critical | error | warning | pass | description |
|---|---|---|---|---|---|---|
| BATTING_REALISM | good | 0 | 0 | 0 | 4 | Player/team batting lines obey baseball constraints. |
| BATTING_TOTALS_SUM | good | 0 | 0 | 0 | 4 | Team batting totals equal the sum of player batting lines. |
| BAT_PITCH_BB_MATCH | good | 0 | 0 | 0 | 2 | Batting walks match opposing pitching walks allowed. |
| BAT_PITCH_HR_MATCH | good | 0 | 0 | 0 | 2 | Batting home runs match opposing pitching home runs allowed. |
| BAT_PITCH_H_MATCH | good | 0 | 0 | 0 | 2 | Batting hits match opposing pitching hits allowed. |
| BAT_PITCH_SO_MATCH | good | 0 | 0 | 0 | 2 | Batting strikeouts match opposing pitching strikeouts. |
| CONFIDENCE_RANGE | good | 0 | 0 | 0 | 5 | Confidence values are between 0 and 1. |
| CURRENT_FINALIZED_MATCH_BOX | warning | 0 | 0 | 4 | 0 | Current finalized player totals agree with final simulation box score. |
| CURRENT_LINEUP_SHAPE | good | 0 | 0 | 0 | 2 | Current predicted_performance contains a plausible 9-player lineup. |
| CURRENT_MODEL_ZERO_FALLBACK | good | 0 | 0 | 0 | 2 | Current model payload did not rely too heavily on all-zero model predictions. |
| CURRENT_NAMES_PRESENT | good | 0 | 0 | 0 | 2 | Current predicted_performance has usable player names. |
| CURRENT_PITCHER_DUPLICATION | info | 0 | 0 | 0 | 0 | Pitcher lists duplicated across current sections are detected and reconciled. |
| CURRENT_SCORE_MATCHES_SIM | good | 0 | 0 | 0 | 1 | game.predicted_runs matches scoring_simulation.final_score. |
| DATE_PARSE | good | 0 | 0 | 0 | 1 | Game date can be parsed as an ISO date. |
| FILENAME_GAME_ID_MATCH | good | 0 | 0 | 0 | 1 | Filename and game_id identify the same game. |
| FILENAME_TEAM_MATCH | good | 0 | 0 | 0 | 1 | Filename teams match the teams inside the JSON. |
| GAME_SUMMARY_MATCH | good | 0 | 0 | 0 | 1 | game_summary text agrees with final score. |
| H2H_DATA_LEAKAGE | good | 0 | 0 | 0 | 1 | Head-to-head history does not include same-day or future games in pregame mode. |
| INNINGS_COUNT | good | 0 | 0 | 0 | 1 | Inning count is valid for MLB. |
| INNING_OUTS | good | 0 | 0 | 0 | 1 | Each played half inning has valid outs. |
| INNING_PLAY_SUMS | good | 0 | 0 | 0 | 1 | Detailed plays agree with inning runs, hits, outs, and pitches. |
| INNING_SEQUENCE | good | 0 | 0 | 0 | 1 | Innings are sequential and unique. |
| INNING_TOTAL_HITS | good | 0 | 0 | 0 | 1 | Inning hits sum to batting team hits. |
| INNING_TOTAL_RUNS | good | 0 | 0 | 0 | 1 | Inning runs sum to final score. |
| LOW_SCORE_ANALYSIS | good | 0 | 0 | 0 | 3 | Low-score probability factors are valid and directionally consistent. |
| PA_BF_MATCH | good | 0 | 0 | 0 | 2 | Team plate appearances match opposing batters faced. |
| PITCHING_REALISM | good | 0 | 0 | 0 | 4 | Pitcher/team pitching lines obey baseball constraints. |
| PITCHING_TOTALS_SUM | good | 0 | 0 | 0 | 8 | Team pitching totals equal the sum of pitcher lines. |
| PITCH_COUNT_PITCHER_MATCH | good | 0 | 0 | 0 | 2 | Pitch count summary pitcher rows agree with pitching box score. |
| PITCH_COUNT_TOTAL_MATCH | good | 0 | 0 | 0 | 4 | Pitch count summary totals match team pitching totals. |
| PITCH_DETAIL_SANITY | good | 0 | 0 | 0 | 1 | Pitch-by-pitch details have plausible values. |
| PREDICTION_COMPARISON_MATCH | good | 0 | 0 | 0 | 3 | prediction_comparison scores agree with target/final result. |
| RECENT_FORM_RANGE | good | 0 | 0 | 0 | 4 | Recent-form metrics are within valid numeric ranges. |
| RECONCILIATION_PROPAGATION | info | 0 | 0 | 0 | 0 | When score_target_reconciliation is used, all final-facing sections are regenerated from the reconciled score. |
| REPORT_COMPLETE | good | 0 | 0 | 0 | 1 | Report includes every audit result in the all-findings table. |
| REPORT_CSV_EXPORT | not triggered | 0 | 0 | 0 | 0 | Optional CSV exports were written for summary and problem rows. |
| RUNS_MATCH_FINAL | good | 0 | 0 | 0 | 2 | Batting/pitching runs agree with final score. |
| SCHEMA_ROOTS_PRESENT | good | 0 | 0 | 0 | 1 | Expected JSON root sections exist and can be audited. |
| SCORE_NO_TIE | good | 0 | 0 | 0 | 1 | Final MLB score has a clear winner. |
| SCORE_STEP_FINAL_MATCH | good | 0 | 0 | 0 | 1 | score_evolution simulation_result matches final score. |
| SCORE_STEP_ORDER | good | 0 | 0 | 0 | 1 | Score evolution contains the expected ordered steps. |
| STARTER_PRESENT | good | 0 | 0 | 0 | 4 | Pitching staff includes a starter or opener when expected. |
| TARGET_SCORE_DRIFT | warning | 0 | 0 | 1 | 0 | Final score does not drift too far from enhanced target. |
| TEAM_RECENT_RECORD | warning | 0 | 0 | 2 | 0 | team_recent_performance wins and win_pct agree with games_analyzed. |
| TOTAL_RUNS_MATCH | good | 0 | 0 | 0 | 1 | total_runs equals away + home runs. |
| WINNER_FIELD_MATCH | good | 0 | 0 | 0 | 1 | winner field agrees with the final score. |
20260429_BOS@TOR
20260429_BOS@TOR.json • 2026-04-29
Final simulation is structurally valid with warnings to review. Risk score: 100.
Action summary - what to fix first
| Level | Problem group / fix | Count | Teams | Example |
|---|---|---|---|---|
| WARN | Current payload is not synced to final box score The final simulation box score is treated as the source of truth. Sync game.predicted_performance finalized_stats/pitcher projections after scoring_simulation, or stop comparing that pre-simulation payload as final output. | 0C / 0E / 4W | BOS, TOR | BOS current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=36; 2B: current=0, sim=2; 3B: current=0, sim=1; HR: current=0, sim=1; RBI: current=1, sim=5; BB: current=0, sim=3; SO: current=9, sim=7). BOS current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=9; R: current=3, sim=4; ER: current=3, sim=4; BB: current=0, sim=2; SO: current=13, sim=4; HR: current=0, sim=1). |
| WARN | Pitch count summary differs by pitcher Pitch-count rows disagree with individual pitching box-score rows. Recalculate pitch_count_summary from the same final pitcher ledger used by box_score.pitching. | 0C / 0E / 4W | BOS, TOR | BOS pitch_count row for Brayan Bello differs from pitching box score: runs_allowed/R: summary=4, box=3. BOS pitch_count row for Danny Coulombe differs from pitching box score: runs_allowed/R: summary=0, box=1. |
| WARN | team_recent_performance record bug wins and win_pct do not agree. Either calculate wins correctly or derive win_pct directly as wins/games_analyzed. | 0C / 0E / 2W | BOS, TOR | BOS wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. TOR wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. |
Problems table - exact rows
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | BOS | CURRENT_FINALIZED_MATCH_BOX | BOS current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=36; 2B: current=0, sim=2; 3B: current=0, sim=1; HR: current=0, sim=1; RBI: current=1, sim=5; BB: current=0, sim=3; SO: current=9, sim=7). | |||
| WARN | current_vs_final | cross-schema | BOS | CURRENT_FINALIZED_MATCH_BOX | BOS current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=9; R: current=3, sim=4; ER: current=3, sim=4; BB: current=0, sim=2; SO: current=13, sim=4; HR: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | TOR | CURRENT_FINALIZED_MATCH_BOX | TOR current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=35; H: current=8, sim=9; HR: current=0, sim=1; RBI: current=2, sim=4; BB: current=0, sim=2; SO: current=9, sim=4; SF: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | TOR | CURRENT_FINALIZED_MATCH_BOX | TOR current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=4, sim=9; R: current=4, sim=5; ER: current=4, sim=5; BB: current=0, sim=3; SO: current=11, sim=7; HR: current=0, sim=1). | |||
| WARN | pitch_count | simulation | BOS | Brayan Bello | PITCH_COUNT_PITCHER_MATCH | BOS pitch_count row for Brayan Bello differs from pitching box score: runs_allowed/R: summary=4, box=3. | ||
| WARN | pitch_count | simulation | BOS | Danny Coulombe | PITCH_COUNT_PITCHER_MATCH | BOS pitch_count row for Danny Coulombe differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | TOR | Eric Lauer | PITCH_COUNT_PITCHER_MATCH | TOR pitch_count row for Eric Lauer differs from pitching box score: runs_allowed/R: summary=4, box=3. | ||
| WARN | pitch_count | simulation | TOR | Jeff Hoffman | PITCH_COUNT_PITCHER_MATCH | TOR pitch_count row for Jeff Hoffman differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | team_recent_performance | current | BOS | TEAM_RECENT_RECORD | BOS wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | TOR | TEAM_RECENT_RECORD | TOR wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. |
All findings - complete audit trail
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | BOS | CURRENT_FINALIZED_MATCH_BOX | BOS current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=36; 2B: current=0, sim=2; 3B: current=0, sim=1; HR: current=0, sim=1; RBI: current=1, sim=5; BB: current=0, sim=3; SO: current=9, sim=7). | |||
| WARN | current_vs_final | cross-schema | BOS | CURRENT_FINALIZED_MATCH_BOX | BOS current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=9; R: current=3, sim=4; ER: current=3, sim=4; BB: current=0, sim=2; SO: current=13, sim=4; HR: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | TOR | CURRENT_FINALIZED_MATCH_BOX | TOR current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=35; H: current=8, sim=9; HR: current=0, sim=1; RBI: current=2, sim=4; BB: current=0, sim=2; SO: current=9, sim=4; SF: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | TOR | CURRENT_FINALIZED_MATCH_BOX | TOR current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=4, sim=9; R: current=4, sim=5; ER: current=4, sim=5; BB: current=0, sim=3; SO: current=11, sim=7; HR: current=0, sim=1). | |||
| WARN | pitch_count | simulation | BOS | Brayan Bello | PITCH_COUNT_PITCHER_MATCH | BOS pitch_count row for Brayan Bello differs from pitching box score: runs_allowed/R: summary=4, box=3. | ||
| WARN | pitch_count | simulation | BOS | Danny Coulombe | PITCH_COUNT_PITCHER_MATCH | BOS pitch_count row for Danny Coulombe differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | TOR | Eric Lauer | PITCH_COUNT_PITCHER_MATCH | TOR pitch_count row for Eric Lauer differs from pitching box score: runs_allowed/R: summary=4, box=3. | ||
| WARN | pitch_count | simulation | TOR | Jeff Hoffman | PITCH_COUNT_PITCHER_MATCH | TOR pitch_count row for Jeff Hoffman differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | team_recent_performance | current | BOS | TEAM_RECENT_RECORD | BOS wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | TOR | TEAM_RECENT_RECORD | TOR wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. | |||
| INFO | current_payload | current | BOS | CURRENT_PITCHER_DUPLICATION | BOS pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | TOR | CURRENT_PITCHER_DUPLICATION | TOR pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. | |||||
| PASS | batting | current | BOS | BATTING_REALISM | current:BOS hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | TOR | BATTING_REALISM | current:TOR hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | BOS | BATTING_REALISM | simulation:BOS hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | TOR | BATTING_REALISM | simulation:TOR hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | BOS | BATTING_TOTALS_SUM | current:BOS batting totals equal summed player lines. | |||
| PASS | batting_totals | current | TOR | BATTING_TOTALS_SUM | current:TOR batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | BOS | BATTING_TOTALS_SUM | simulation:BOS batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | TOR | BATTING_TOTALS_SUM | simulation:TOR batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | BOS | BAT_PITCH_BB_MATCH | simulation:BOS batting walks match TOR pitching: 3. | |||
| PASS | boxscore_crosscheck | simulation | BOS | BAT_PITCH_HR_MATCH | simulation:BOS batting home runs match TOR pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | BOS | BAT_PITCH_H_MATCH | simulation:BOS batting hits match TOR pitching: 9. | |||
| PASS | boxscore_crosscheck | simulation | BOS | BAT_PITCH_SO_MATCH | simulation:BOS batting strikeouts match TOR pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | BOS | PA_BF_MATCH | simulation:BOS PA=39 matches TOR BF=39. | |||
| PASS | boxscore_crosscheck | simulation | BOS | RUNS_MATCH_FINAL | simulation:BOS runs match final score and opposing pitching runs: 5. | |||
| PASS | boxscore_crosscheck | simulation | TOR | BAT_PITCH_BB_MATCH | simulation:TOR batting walks match BOS pitching: 2. | |||
| PASS | boxscore_crosscheck | simulation | TOR | BAT_PITCH_HR_MATCH | simulation:TOR batting home runs match BOS pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | TOR | BAT_PITCH_H_MATCH | simulation:TOR batting hits match BOS pitching: 9. | |||
| PASS | boxscore_crosscheck | simulation | TOR | BAT_PITCH_SO_MATCH | simulation:TOR batting strikeouts match BOS pitching: 4. | |||
| PASS | boxscore_crosscheck | simulation | TOR | PA_BF_MATCH | simulation:TOR PA=38 matches BOS BF=38. | |||
| PASS | boxscore_crosscheck | simulation | TOR | RUNS_MATCH_FINAL | simulation:TOR runs match final score and opposing pitching runs: 4. | |||
| PASS | current_payload | current | BOS | CURRENT_LINEUP_SHAPE | BOS current lineup has 9 expected positions. | |||
| PASS | current_payload | current | BOS | CURRENT_MODEL_ZERO_FALLBACK | BOS current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | BOS | CURRENT_NAMES_PRESENT | BOS current hitter names are populated. | |||
| PASS | current_payload | current | TOR | CURRENT_LINEUP_SHAPE | TOR current lineup has 9 expected positions. | |||
| PASS | current_payload | current | TOR | CURRENT_MODEL_ZERO_FALLBACK | TOR current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | TOR | CURRENT_NAMES_PRESENT | TOR current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.547. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.547. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.453. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 9 is reasonably close to low-score expected_total_runs 10.3. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.298/0.696. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: BOS 9, TOR 9. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: BOS 5 - TOR 4. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_BOS@TOR. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: BOS@TOR. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 145. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 164. | |||||
| PASS | pitch_count | simulation | BOS | PITCH_COUNT_TOTAL_MATCH | BOS pitch_count_summary total, row sum, and pitching total all match: 145. | |||
| PASS | pitch_count | simulation | TOR | PITCH_COUNT_TOTAL_MATCH | TOR pitch_count_summary total, row sum, and pitching total all match: 164. | |||
| PASS | pitching | current | BOS | PITCHING_REALISM | current:BOS pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | BOS | STARTER_PRESENT | current:BOS includes a starter/opener role. | |||
| PASS | pitching | current | TOR | PITCHING_REALISM | current:TOR pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | TOR | STARTER_PRESENT | current:TOR includes a starter/opener role. | |||
| PASS | pitching | simulation | BOS | PITCHING_REALISM | simulation:BOS pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | BOS | STARTER_PRESENT | simulation:BOS includes a starter/opener role. | |||
| PASS | pitching | simulation | TOR | PITCHING_REALISM | simulation:TOR pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | TOR | STARTER_PRESENT | simulation:TOR includes a starter/opener role. | |||
| PASS | pitching_totals | current | BOS | PITCHING_TOTALS_SUM | current:BOS pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | BOS | PITCHING_TOTALS_SUM | current:BOS pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | TOR | PITCHING_TOTALS_SUM | current:TOR pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | TOR | PITCHING_TOTALS_SUM | current:TOR pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | BOS | PITCHING_TOTALS_SUM | simulation:BOS pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | BOS | PITCHING_TOTALS_SUM | simulation:BOS pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | TOR | PITCHING_TOTALS_SUM | simulation:TOR pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | TOR | PITCHING_TOTALS_SUM | simulation:TOR pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: BOS 6 - 5 TOR. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: BOS 5 - 4 TOR. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: BOS wins 5-4. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.547. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 4/10 (0.400). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 6/10 (0.600). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: BOS wins 5-4. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: BOS wins 5-4. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 5-4. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 6-5, final 5-4 (delta 2). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 9. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: BOS wins 5-4. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | BOS | RECENT_FORM_RANGE | BOS recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | TOR | RECENT_FORM_RANGE | TOR recent hitting/pitching rates are in valid ranges. |
Passed checks
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| PASS | batting | current | BOS | BATTING_REALISM | current:BOS hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | TOR | BATTING_REALISM | current:TOR hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | BOS | BATTING_REALISM | simulation:BOS hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | TOR | BATTING_REALISM | simulation:TOR hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | BOS | BATTING_TOTALS_SUM | current:BOS batting totals equal summed player lines. | |||
| PASS | batting_totals | current | TOR | BATTING_TOTALS_SUM | current:TOR batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | BOS | BATTING_TOTALS_SUM | simulation:BOS batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | TOR | BATTING_TOTALS_SUM | simulation:TOR batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | BOS | BAT_PITCH_BB_MATCH | simulation:BOS batting walks match TOR pitching: 3. | |||
| PASS | boxscore_crosscheck | simulation | BOS | BAT_PITCH_HR_MATCH | simulation:BOS batting home runs match TOR pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | BOS | BAT_PITCH_H_MATCH | simulation:BOS batting hits match TOR pitching: 9. | |||
| PASS | boxscore_crosscheck | simulation | BOS | BAT_PITCH_SO_MATCH | simulation:BOS batting strikeouts match TOR pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | BOS | PA_BF_MATCH | simulation:BOS PA=39 matches TOR BF=39. | |||
| PASS | boxscore_crosscheck | simulation | BOS | RUNS_MATCH_FINAL | simulation:BOS runs match final score and opposing pitching runs: 5. | |||
| PASS | boxscore_crosscheck | simulation | TOR | BAT_PITCH_BB_MATCH | simulation:TOR batting walks match BOS pitching: 2. | |||
| PASS | boxscore_crosscheck | simulation | TOR | BAT_PITCH_HR_MATCH | simulation:TOR batting home runs match BOS pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | TOR | BAT_PITCH_H_MATCH | simulation:TOR batting hits match BOS pitching: 9. | |||
| PASS | boxscore_crosscheck | simulation | TOR | BAT_PITCH_SO_MATCH | simulation:TOR batting strikeouts match BOS pitching: 4. | |||
| PASS | boxscore_crosscheck | simulation | TOR | PA_BF_MATCH | simulation:TOR PA=38 matches BOS BF=38. | |||
| PASS | boxscore_crosscheck | simulation | TOR | RUNS_MATCH_FINAL | simulation:TOR runs match final score and opposing pitching runs: 4. | |||
| PASS | current_payload | current | BOS | CURRENT_LINEUP_SHAPE | BOS current lineup has 9 expected positions. | |||
| PASS | current_payload | current | BOS | CURRENT_MODEL_ZERO_FALLBACK | BOS current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | BOS | CURRENT_NAMES_PRESENT | BOS current hitter names are populated. | |||
| PASS | current_payload | current | TOR | CURRENT_LINEUP_SHAPE | TOR current lineup has 9 expected positions. | |||
| PASS | current_payload | current | TOR | CURRENT_MODEL_ZERO_FALLBACK | TOR current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | TOR | CURRENT_NAMES_PRESENT | TOR current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.547. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.547. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.453. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 9 is reasonably close to low-score expected_total_runs 10.3. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.298/0.696. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: BOS 9, TOR 9. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: BOS 5 - TOR 4. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_BOS@TOR. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: BOS@TOR. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 145. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 164. | |||||
| PASS | pitch_count | simulation | BOS | PITCH_COUNT_TOTAL_MATCH | BOS pitch_count_summary total, row sum, and pitching total all match: 145. | |||
| PASS | pitch_count | simulation | TOR | PITCH_COUNT_TOTAL_MATCH | TOR pitch_count_summary total, row sum, and pitching total all match: 164. | |||
| PASS | pitching | current | BOS | PITCHING_REALISM | current:BOS pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | BOS | STARTER_PRESENT | current:BOS includes a starter/opener role. | |||
| PASS | pitching | current | TOR | PITCHING_REALISM | current:TOR pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | TOR | STARTER_PRESENT | current:TOR includes a starter/opener role. | |||
| PASS | pitching | simulation | BOS | PITCHING_REALISM | simulation:BOS pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | BOS | STARTER_PRESENT | simulation:BOS includes a starter/opener role. | |||
| PASS | pitching | simulation | TOR | PITCHING_REALISM | simulation:TOR pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | TOR | STARTER_PRESENT | simulation:TOR includes a starter/opener role. | |||
| PASS | pitching_totals | current | BOS | PITCHING_TOTALS_SUM | current:BOS pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | BOS | PITCHING_TOTALS_SUM | current:BOS pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | TOR | PITCHING_TOTALS_SUM | current:TOR pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | TOR | PITCHING_TOTALS_SUM | current:TOR pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | BOS | PITCHING_TOTALS_SUM | simulation:BOS pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | BOS | PITCHING_TOTALS_SUM | simulation:BOS pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | TOR | PITCHING_TOTALS_SUM | simulation:TOR pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | TOR | PITCHING_TOTALS_SUM | simulation:TOR pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: BOS 6 - 5 TOR. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: BOS 5 - 4 TOR. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: BOS wins 5-4. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.547. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 4/10 (0.400). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 6/10 (0.600). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: BOS wins 5-4. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: BOS wins 5-4. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 5-4. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 6-5, final 5-4 (delta 2). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 9. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: BOS wins 5-4. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | BOS | RECENT_FORM_RANGE | BOS recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | TOR | RECENT_FORM_RANGE | TOR recent hitting/pitching rates are in valid ranges. |
Info/context findings
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| INFO | current_payload | current | BOS | CURRENT_PITCHER_DUPLICATION | BOS pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | TOR | CURRENT_PITCHER_DUPLICATION | TOR pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
Score evolution
| step | away_runs | home_runs | confidence | description |
|---|---|---|---|---|
| historical_ml | 5.228509902954102 | 4.334410190582275 | Base ML historical model prediction | |
| variance_applied | 5 | 4 | Random variance applied (0.9-1.1) | |
| enhanced_prediction | 6 | 5 | 0.546 | Enhanced ML with recent form, H2H, low-score analysis |
| capped_target | 6 | 5 | Capped at max 12 realistic runs | |
| simulation_result | 5 | 4 | Final inning-by-inning simulation result |
Inning-by-inning linescore
| team | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | R | H |
|---|---|---|---|---|---|---|---|---|---|---|---|
| BOS | 2 | 2 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 5 | 9 |
| TOR | 2 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 4 | 9 |
Team totals - current + final simulation
| src | team | type | AB | H | 2B | 3B | HR | RBI | R | BB | SO | SF | HBP | SB | CS | IP | ER | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | BOS | batting | 29 | 9 | 0 | 0 | 0 | 1 | 5 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | BOS | pitching | 3 | 0 | 3 | 0 | 13 | 9.0 | 3 | 0 | 0 | ||||||||
| current | TOR | batting | 28 | 8 | 0 | 0 | 0 | 2 | 4 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | TOR | pitching | 4 | 0 | 4 | 0 | 11 | 9.0 | 4 | 0 | 0 | ||||||||
| simulation | BOS | batting | 36 | 9 | 2 | 1 | 1 | 5 | 5 | 3 | 7 | 0 | 0 | ||||||
| simulation | BOS | pitching | 9 | 1 | 4 | 2 | 4 | 9.0 | 4 | 38 | 145 | ||||||||
| simulation | TOR | batting | 35 | 9 | 0 | 0 | 1 | 4 | 4 | 2 | 4 | 1 | 0 | ||||||
| simulation | TOR | pitching | 9 | 1 | 5 | 3 | 7 | 9.0 | 5 | 39 | 164 |
Batting lines - current + final simulation
| src | team | order | pos | name | AB | H | 2B | 3B | HR | R | RBI | BB | SO | HBP | AVG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | BOS | 1B | Willson Contreras | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | BOS | DH | Roman Anthony | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | BOS | CF | Ceddanne Rafaela | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | BOS | 2B | Marcelo Mayer | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | BOS | 3B | Caleb Durbin | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | BOS | SS | Trevor Story | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 | |
| current | BOS | RF | Wilyer Abreu | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | BOS | LF | Jarren Duran | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 | |
| current | BOS | C | Carlos Narváez | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | TOR | C | Tyler Heineman | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 | |
| current | TOR | LF | Yohendrick Pinango | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | TOR | SS | Andrés Giménez | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | TOR | 2B | Ernie Clement | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 | |
| current | TOR | DH | George Springer | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | TOR | 1B | Vladimir Guerrero Jr. | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | TOR | 3B | Kazuma Okamoto | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | TOR | CF | Daulton Varsho | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | TOR | RF | Jesús Sánchez | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| simulation | BOS | 1 | LF | Jarren Duran | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 2 | 0 | 0.000 |
| simulation | BOS | 2 | 1B | Willson Contreras | 5 | 3 | 0 | 0 | 0 | 1 | 2 | 0 | 0 | 0 | 0.600 |
| simulation | BOS | 3 | DH | Roman Anthony | 4 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0.250 |
| simulation | BOS | 4 | RF | Wilyer Abreu | 4 | 1 | 0 | 0 | 1 | 1 | 2 | 0 | 0 | 0 | 0.250 |
| simulation | BOS | 5 | SS | Trevor Story | 4 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0.250 |
| simulation | BOS | 6 | CF | Ceddanne Rafaela | 4 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.250 |
| simulation | BOS | 7 | 2B | Marcelo Mayer | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.000 |
| simulation | BOS | 8 | 3B | Caleb Durbin | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | BOS | 9 | C | Carlos Narváez | 4 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | 2 | 0 | 0.500 |
| simulation | TOR | 1 | DH | George Springer | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.200 |
| simulation | TOR | 2 | CF | Daulton Varsho | 5 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0.200 |
| simulation | TOR | 3 | 1B | Vladimir Guerrero Jr. | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.333 |
| simulation | TOR | 4 | RF | Jesús Sánchez | 4 | 2 | 0 | 0 | 1 | 1 | 2 | 0 | 1 | 0 | 0.500 |
| simulation | TOR | 5 | 3B | Kazuma Okamoto | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 |
| simulation | TOR | 6 | 2B | Ernie Clement | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 |
| simulation | TOR | 7 | SS | Andrés Giménez | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.000 |
| simulation | TOR | 8 | LF | Yohendrick Pinango | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0.000 |
| simulation | TOR | 9 | C | Tyler Heineman | 4 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0.500 |
Pitching lines - current + final simulation
| src | team | order | name | role | IP | H | R | ER | BB | SO | HR | BF | Pitches | sim_ERA | season_ERA | season_WHIP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | BOS | 1 | Brayan Bello | Starter | 5.1 | 1 | 1 | 1 | 0 | 3 | 0 | 0 | 0 | 1.69 | 9.61 | 2.43 |
| current | BOS | 2 | Garrett Whitlock | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0.00 | 2.70 | 1.20 |
| current | BOS | 3 | Zack Kelly | Middle Reliever | 1.0 | 1 | 1 | 1 | 0 | 3 | 0 | 0 | 0 | 9.00 | 4.14 | 1.03 |
| current | BOS | 4 | Aroldis Chapman | Middle Reliever | 0.2 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 1.10 | 0.98 |
| current | BOS | 5 | Greg Weissert | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 13.50 | 4.59 | 1.63 |
| current | BOS | 6 | Danny Coulombe | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 10.47 | 2.56 | |
| current | TOR | 1 | Eric Lauer | Starter | 5.2 | 1 | 1 | 1 | 0 | 5 | 0 | 0 | 0 | 1.59 | 6.89 | 1.58 |
| current | TOR | 2 | Louis Varland | Middle Reliever | 1.1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 6.75 | 0.65 | 1.15 |
| current | TOR | 3 | Braydon Fisher | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 13.50 | 2.08 | 1.31 |
| current | TOR | 4 | Mason Fluharty | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 13.50 | 4.86 | 1.62 |
| current | TOR | 5 | Tyler Rogers | Middle Reliever | 0.2 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 0.63 | 0.83 |
| current | TOR | 6 | Jeff Hoffman | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 7.04 | 2.00 | |
| simulation | BOS | 1 | Brayan Bello | Starter | 5.0 | 8 | 3 | 3 | 2 | 2 | 1 | 25 | 100 | 5.40 | 9.61 | 2.43 |
| simulation | BOS | 2 | Aroldis Chapman | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 12 | 0.00 | 1.10 | 0.98 |
| simulation | BOS | 3 | Garrett Whitlock | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 10 | 0.00 | 2.70 | 1.20 |
| simulation | BOS | 4 | Greg Weissert | Middle Reliever | 1.0 | 1 | 0 | 0 | 0 | 1 | 0 | 4 | 13 | 0.00 | 4.59 | 1.63 |
| simulation | BOS | 5 | Danny Coulombe | Middle Reliever | 1.0 | 0 | 1 | 1 | 0 | 0 | 0 | 3 | 10 | 9.00 | 10.47 | 2.56 |
| simulation | TOR | 1 | Eric Lauer | Starter | 2.0 | 3 | 3 | 3 | 3 | 1 | 1 | 12 | 59 | 13.50 | 6.89 | 1.58 |
| simulation | TOR | 2 | Jeff Hoffman | Middle Reliever | 1.0 | 1 | 1 | 1 | 0 | 0 | 0 | 4 | 13 | 9.00 | 7.04 | 2.00 |
| simulation | TOR | 3 | Tyler Rogers | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 13 | 0.00 | 0.63 | 0.83 |
| simulation | TOR | 4 | Louis Varland | Middle Reliever | 1.0 | 1 | 0 | 0 | 0 | 1 | 0 | 4 | 18 | 0.00 | 0.65 | 1.15 |
| simulation | TOR | 5 | Braydon Fisher | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 10 | 0.00 | 2.08 | 1.31 |
| simulation | TOR | 6 | Mason Fluharty | Middle Reliever | 1.0 | 2 | 1 | 1 | 0 | 2 | 0 | 5 | 23 | 9.00 | 4.86 | 1.62 |
| simulation | TOR | 7 | Tommy Nance | Reliever | 1.0 | 1 | 0 | 0 | 0 | 1 | 0 | 4 | 13 | 0.00 | ||
| simulation | TOR | 8 | Spencer Miles | Reliever | 1.0 | 1 | 0 | 0 | 0 | 0 | 0 | 4 | 15 | 0.00 |
Pitch count summary
| team | pitcher | role | IP | R | H | BB | SO | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|
| BOS | Brayan Bello | Starter | 5.0 | 4 | 8 | 2 | 2 | 25 | 100 |
| BOS | Aroldis Chapman | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 12 |
| BOS | Garrett Whitlock | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 10 |
| BOS | Greg Weissert | Middle Reliever | 1.0 | 0 | 1 | 0 | 1 | 4 | 13 |
| BOS | Danny Coulombe | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 10 |
| TOR | Eric Lauer | Starter | 2.0 | 4 | 3 | 3 | 1 | 12 | 59 |
| TOR | Jeff Hoffman | Middle Reliever | 1.0 | 0 | 1 | 0 | 0 | 4 | 13 |
| TOR | Tyler Rogers | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 13 |
| TOR | Louis Varland | Middle Reliever | 1.0 | 0 | 1 | 0 | 1 | 4 | 18 |
| TOR | Braydon Fisher | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 10 |
| TOR | Mason Fluharty | Middle Reliever | 1.0 | 1 | 2 | 0 | 2 | 5 | 23 |
| TOR | Tommy Nance | Reliever | 1.0 | 0 | 1 | 0 | 1 | 4 | 13 |
| TOR | Spencer Miles | Reliever | 1.0 | 0 | 1 | 0 | 0 | 4 | 15 |
Audit rule catalog
| rule | status | critical | error | warning | pass | description |
|---|---|---|---|---|---|---|
| BATTING_REALISM | good | 0 | 0 | 0 | 4 | Player/team batting lines obey baseball constraints. |
| BATTING_TOTALS_SUM | good | 0 | 0 | 0 | 4 | Team batting totals equal the sum of player batting lines. |
| BAT_PITCH_BB_MATCH | good | 0 | 0 | 0 | 2 | Batting walks match opposing pitching walks allowed. |
| BAT_PITCH_HR_MATCH | good | 0 | 0 | 0 | 2 | Batting home runs match opposing pitching home runs allowed. |
| BAT_PITCH_H_MATCH | good | 0 | 0 | 0 | 2 | Batting hits match opposing pitching hits allowed. |
| BAT_PITCH_SO_MATCH | good | 0 | 0 | 0 | 2 | Batting strikeouts match opposing pitching strikeouts. |
| CONFIDENCE_RANGE | good | 0 | 0 | 0 | 5 | Confidence values are between 0 and 1. |
| CURRENT_FINALIZED_MATCH_BOX | warning | 0 | 0 | 4 | 0 | Current finalized player totals agree with final simulation box score. |
| CURRENT_LINEUP_SHAPE | good | 0 | 0 | 0 | 2 | Current predicted_performance contains a plausible 9-player lineup. |
| CURRENT_MODEL_ZERO_FALLBACK | good | 0 | 0 | 0 | 2 | Current model payload did not rely too heavily on all-zero model predictions. |
| CURRENT_NAMES_PRESENT | good | 0 | 0 | 0 | 2 | Current predicted_performance has usable player names. |
| CURRENT_PITCHER_DUPLICATION | info | 0 | 0 | 0 | 0 | Pitcher lists duplicated across current sections are detected and reconciled. |
| CURRENT_SCORE_MATCHES_SIM | good | 0 | 0 | 0 | 1 | game.predicted_runs matches scoring_simulation.final_score. |
| DATE_PARSE | good | 0 | 0 | 0 | 1 | Game date can be parsed as an ISO date. |
| FILENAME_GAME_ID_MATCH | good | 0 | 0 | 0 | 1 | Filename and game_id identify the same game. |
| FILENAME_TEAM_MATCH | good | 0 | 0 | 0 | 1 | Filename teams match the teams inside the JSON. |
| GAME_SUMMARY_MATCH | good | 0 | 0 | 0 | 1 | game_summary text agrees with final score. |
| H2H_DATA_LEAKAGE | good | 0 | 0 | 0 | 1 | Head-to-head history does not include same-day or future games in pregame mode. |
| INNINGS_COUNT | good | 0 | 0 | 0 | 1 | Inning count is valid for MLB. |
| INNING_OUTS | not triggered | 0 | 0 | 0 | 0 | Each played half inning has valid outs. |
| INNING_PLAY_SUMS | good | 0 | 0 | 0 | 1 | Detailed plays agree with inning runs, hits, outs, and pitches. |
| INNING_SEQUENCE | good | 0 | 0 | 0 | 1 | Innings are sequential and unique. |
| INNING_TOTAL_HITS | good | 0 | 0 | 0 | 1 | Inning hits sum to batting team hits. |
| INNING_TOTAL_RUNS | good | 0 | 0 | 0 | 1 | Inning runs sum to final score. |
| LOW_SCORE_ANALYSIS | good | 0 | 0 | 0 | 3 | Low-score probability factors are valid and directionally consistent. |
| PA_BF_MATCH | good | 0 | 0 | 0 | 2 | Team plate appearances match opposing batters faced. |
| PITCHING_REALISM | good | 0 | 0 | 0 | 4 | Pitcher/team pitching lines obey baseball constraints. |
| PITCHING_TOTALS_SUM | good | 0 | 0 | 0 | 8 | Team pitching totals equal the sum of pitcher lines. |
| PITCH_COUNT_PITCHER_MATCH | warning | 0 | 0 | 4 | 0 | Pitch count summary pitcher rows agree with pitching box score. |
| PITCH_COUNT_TOTAL_MATCH | good | 0 | 0 | 0 | 4 | Pitch count summary totals match team pitching totals. |
| PITCH_DETAIL_SANITY | good | 0 | 0 | 0 | 1 | Pitch-by-pitch details have plausible values. |
| PREDICTION_COMPARISON_MATCH | good | 0 | 0 | 0 | 3 | prediction_comparison scores agree with target/final result. |
| RECENT_FORM_RANGE | good | 0 | 0 | 0 | 4 | Recent-form metrics are within valid numeric ranges. |
| RECONCILIATION_PROPAGATION | info | 0 | 0 | 0 | 0 | When score_target_reconciliation is used, all final-facing sections are regenerated from the reconciled score. |
| REPORT_COMPLETE | good | 0 | 0 | 0 | 1 | Report includes every audit result in the all-findings table. |
| REPORT_CSV_EXPORT | not triggered | 0 | 0 | 0 | 0 | Optional CSV exports were written for summary and problem rows. |
| RUNS_MATCH_FINAL | good | 0 | 0 | 0 | 2 | Batting/pitching runs agree with final score. |
| SCHEMA_ROOTS_PRESENT | good | 0 | 0 | 0 | 1 | Expected JSON root sections exist and can be audited. |
| SCORE_NO_TIE | good | 0 | 0 | 0 | 1 | Final MLB score has a clear winner. |
| SCORE_STEP_FINAL_MATCH | good | 0 | 0 | 0 | 1 | score_evolution simulation_result matches final score. |
| SCORE_STEP_ORDER | good | 0 | 0 | 0 | 1 | Score evolution contains the expected ordered steps. |
| STARTER_PRESENT | good | 0 | 0 | 0 | 4 | Pitching staff includes a starter or opener when expected. |
| TARGET_SCORE_DRIFT | good | 0 | 0 | 0 | 1 | Final score does not drift too far from enhanced target. |
| TEAM_RECENT_RECORD | warning | 0 | 0 | 2 | 0 | team_recent_performance wins and win_pct agree with games_analyzed. |
| TOTAL_RUNS_MATCH | good | 0 | 0 | 0 | 1 | total_runs equals away + home runs. |
| WINNER_FIELD_MATCH | good | 0 | 0 | 0 | 1 | winner field agrees with the final score. |
20260429_CHC@SD
20260429_CHC@SD.json • 2026-04-29
Final simulation is structurally valid with warnings to review. Risk score: 110.
Action summary - what to fix first
| Level | Problem group / fix | Count | Teams | Example |
|---|---|---|---|---|
| WARN | Current payload is not synced to final box score The final simulation box score is treated as the source of truth. Sync game.predicted_performance finalized_stats/pitcher projections after scoring_simulation, or stop comparing that pre-simulation payload as final output. | 0C / 0E / 4W | CHC, SD | CHC current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=36; H: current=9, sim=10; 2B: current=0, sim=1; HR: current=0, sim=1; RBI: current=3, sim=8; BB: current=0, sim=6; SO: current=9, sim=6; SF: current=0, sim=1). CHC current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=7; R: current=3, sim=4; ER: current=3, sim=4; BB: current=0, sim=6; SO: current=8, sim=5; HR: current=0, sim=1). |
| WARN | Pitch count summary differs by pitcher Pitch-count rows disagree with individual pitching box-score rows. Recalculate pitch_count_summary from the same final pitcher ledger used by box_score.pitching. | 0C / 0E / 4W | CHC, SD | CHC pitch_count row for Jacob Webb differs from pitching box score: runs_allowed/R: summary=0, box=1. CHC pitch_count row for Jameson Taillon differs from pitching box score: runs_allowed/R: summary=3, box=2. |
| WARN | team_recent_performance record bug wins and win_pct do not agree. Either calculate wins correctly or derive win_pct directly as wins/games_analyzed. | 0C / 0E / 2W | CHC, SD | CHC wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. SD wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. |
| WARN | Data Leakage Review the listed finding and decide whether to fix the data or downgrade the rule. | 0C / 0E / 1W | - | Head-to-head contains same-day/future game rows that should not be available before first pitch: 2026-04-29 CHC@SD 8-3 |
Problems table - exact rows
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | CHC | CURRENT_FINALIZED_MATCH_BOX | CHC current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=36; H: current=9, sim=10; 2B: current=0, sim=1; HR: current=0, sim=1; RBI: current=3, sim=8; BB: current=0, sim=6; SO: current=9, sim=6; SF: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | CHC | CURRENT_FINALIZED_MATCH_BOX | CHC current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=7; R: current=3, sim=4; ER: current=3, sim=4; BB: current=0, sim=6; SO: current=8, sim=5; HR: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | SD | CURRENT_FINALIZED_MATCH_BOX | SD current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=34; H: current=6, sim=7; HR: current=0, sim=1; RBI: current=2, sim=4; BB: current=1, sim=6; SO: current=9, sim=5). | |||
| WARN | current_vs_final | cross-schema | SD | CURRENT_FINALIZED_MATCH_BOX | SD current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=6, sim=10; R: current=6, sim=8; ER: current=6, sim=8; BB: current=0, sim=6; SO: current=11, sim=6; HR: current=0, sim=1). | |||
| WARN | data_leakage | H2H_DATA_LEAKAGE | Head-to-head contains same-day/future game rows that should not be available before first pitch: 2026-04-29 CHC@SD 8-3 | Only H2H rows dated before the prediction game date in pregame mode. | ||||
| WARN | pitch_count | simulation | CHC | Jacob Webb | PITCH_COUNT_PITCHER_MATCH | CHC pitch_count row for Jacob Webb differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | CHC | Jameson Taillon | PITCH_COUNT_PITCHER_MATCH | CHC pitch_count row for Jameson Taillon differs from pitching box score: runs_allowed/R: summary=3, box=2. | ||
| WARN | pitch_count | simulation | SD | David Morgan | PITCH_COUNT_PITCHER_MATCH | SD pitch_count row for David Morgan differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | SD | Matt Waldron | PITCH_COUNT_PITCHER_MATCH | SD pitch_count row for Matt Waldron differs from pitching box score: runs_allowed/R: summary=8, box=7. | ||
| WARN | team_recent_performance | current | CHC | TEAM_RECENT_RECORD | CHC wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | SD | TEAM_RECENT_RECORD | SD wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. |
All findings - complete audit trail
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | CHC | CURRENT_FINALIZED_MATCH_BOX | CHC current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=36; H: current=9, sim=10; 2B: current=0, sim=1; HR: current=0, sim=1; RBI: current=3, sim=8; BB: current=0, sim=6; SO: current=9, sim=6; SF: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | CHC | CURRENT_FINALIZED_MATCH_BOX | CHC current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=7; R: current=3, sim=4; ER: current=3, sim=4; BB: current=0, sim=6; SO: current=8, sim=5; HR: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | SD | CURRENT_FINALIZED_MATCH_BOX | SD current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=34; H: current=6, sim=7; HR: current=0, sim=1; RBI: current=2, sim=4; BB: current=1, sim=6; SO: current=9, sim=5). | |||
| WARN | current_vs_final | cross-schema | SD | CURRENT_FINALIZED_MATCH_BOX | SD current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=6, sim=10; R: current=6, sim=8; ER: current=6, sim=8; BB: current=0, sim=6; SO: current=11, sim=6; HR: current=0, sim=1). | |||
| WARN | data_leakage | H2H_DATA_LEAKAGE | Head-to-head contains same-day/future game rows that should not be available before first pitch: 2026-04-29 CHC@SD 8-3 | Only H2H rows dated before the prediction game date in pregame mode. | ||||
| WARN | pitch_count | simulation | CHC | Jacob Webb | PITCH_COUNT_PITCHER_MATCH | CHC pitch_count row for Jacob Webb differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | CHC | Jameson Taillon | PITCH_COUNT_PITCHER_MATCH | CHC pitch_count row for Jameson Taillon differs from pitching box score: runs_allowed/R: summary=3, box=2. | ||
| WARN | pitch_count | simulation | SD | David Morgan | PITCH_COUNT_PITCHER_MATCH | SD pitch_count row for David Morgan differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | SD | Matt Waldron | PITCH_COUNT_PITCHER_MATCH | SD pitch_count row for Matt Waldron differs from pitching box score: runs_allowed/R: summary=8, box=7. | ||
| WARN | team_recent_performance | current | CHC | TEAM_RECENT_RECORD | CHC wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | SD | TEAM_RECENT_RECORD | SD wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. | |||
| INFO | current_payload | current | CHC | CURRENT_PITCHER_DUPLICATION | CHC pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | SD | CURRENT_PITCHER_DUPLICATION | SD pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. | |||||
| PASS | batting | current | CHC | BATTING_REALISM | current:CHC hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | SD | BATTING_REALISM | current:SD hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | CHC | BATTING_REALISM | simulation:CHC hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | SD | BATTING_REALISM | simulation:SD hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | CHC | BATTING_TOTALS_SUM | current:CHC batting totals equal summed player lines. | |||
| PASS | batting_totals | current | SD | BATTING_TOTALS_SUM | current:SD batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | CHC | BATTING_TOTALS_SUM | simulation:CHC batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | SD | BATTING_TOTALS_SUM | simulation:SD batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | CHC | BAT_PITCH_BB_MATCH | simulation:CHC batting walks match SD pitching: 6. | |||
| PASS | boxscore_crosscheck | simulation | CHC | BAT_PITCH_HR_MATCH | simulation:CHC batting home runs match SD pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | CHC | BAT_PITCH_H_MATCH | simulation:CHC batting hits match SD pitching: 10. | |||
| PASS | boxscore_crosscheck | simulation | CHC | BAT_PITCH_SO_MATCH | simulation:CHC batting strikeouts match SD pitching: 6. | |||
| PASS | boxscore_crosscheck | simulation | CHC | PA_BF_MATCH | simulation:CHC PA=43 matches SD BF=43. | |||
| PASS | boxscore_crosscheck | simulation | CHC | RUNS_MATCH_FINAL | simulation:CHC runs match final score and opposing pitching runs: 8. | |||
| PASS | boxscore_crosscheck | simulation | SD | BAT_PITCH_BB_MATCH | simulation:SD batting walks match CHC pitching: 6. | |||
| PASS | boxscore_crosscheck | simulation | SD | BAT_PITCH_HR_MATCH | simulation:SD batting home runs match CHC pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | SD | BAT_PITCH_H_MATCH | simulation:SD batting hits match CHC pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | SD | BAT_PITCH_SO_MATCH | simulation:SD batting strikeouts match CHC pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | SD | PA_BF_MATCH | simulation:SD PA=40 matches CHC BF=40. | |||
| PASS | boxscore_crosscheck | simulation | SD | RUNS_MATCH_FINAL | simulation:SD runs match final score and opposing pitching runs: 4. | |||
| PASS | current_payload | current | CHC | CURRENT_LINEUP_SHAPE | CHC current lineup has 9 expected positions. | |||
| PASS | current_payload | current | CHC | CURRENT_MODEL_ZERO_FALLBACK | CHC current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | CHC | CURRENT_NAMES_PRESENT | CHC current hitter names are populated. | |||
| PASS | current_payload | current | SD | CURRENT_LINEUP_SHAPE | SD current lineup has 9 expected positions. | |||
| PASS | current_payload | current | SD | CURRENT_MODEL_ZERO_FALLBACK | SD current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | SD | CURRENT_NAMES_PRESENT | SD current hitter names are populated. | |||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.666. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.666. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.334. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 12 is reasonably close to low-score expected_total_runs 10.4. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.276/0.652. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: CHC 10, SD 7. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: CHC 8 - SD 4. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_CHC@SD. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: CHC@SD. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 180. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 190. | |||||
| PASS | pitch_count | simulation | CHC | PITCH_COUNT_TOTAL_MATCH | CHC pitch_count_summary total, row sum, and pitching total all match: 180. | |||
| PASS | pitch_count | simulation | SD | PITCH_COUNT_TOTAL_MATCH | SD pitch_count_summary total, row sum, and pitching total all match: 190. | |||
| PASS | pitching | current | CHC | PITCHING_REALISM | current:CHC pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | CHC | STARTER_PRESENT | current:CHC includes a starter/opener role. | |||
| PASS | pitching | current | SD | PITCHING_REALISM | current:SD pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | SD | STARTER_PRESENT | current:SD includes a starter/opener role. | |||
| PASS | pitching | simulation | CHC | PITCHING_REALISM | simulation:CHC pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | CHC | STARTER_PRESENT | simulation:CHC includes a starter/opener role. | |||
| PASS | pitching | simulation | SD | PITCHING_REALISM | simulation:SD pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | SD | STARTER_PRESENT | simulation:SD includes a starter/opener role. | |||
| PASS | pitching_totals | current | CHC | PITCHING_TOTALS_SUM | current:CHC pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | CHC | PITCHING_TOTALS_SUM | current:CHC pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | SD | PITCHING_TOTALS_SUM | current:SD pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | SD | PITCHING_TOTALS_SUM | current:SD pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | CHC | PITCHING_TOTALS_SUM | simulation:CHC pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | CHC | PITCHING_TOTALS_SUM | simulation:CHC pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | SD | PITCHING_TOTALS_SUM | simulation:SD pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | SD | PITCHING_TOTALS_SUM | simulation:SD pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: CHC 6 - 4 SD. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: CHC 8 - 4 SD. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: CHC wins 8-4. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.666. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 7/10 (0.700). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 6/10 (0.600). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: CHC wins 8-4. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: CHC wins 8-4. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 8-4. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 6-4, final 8-4 (delta 2). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 12. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: CHC wins 8-4. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | CHC | RECENT_FORM_RANGE | CHC recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | SD | RECENT_FORM_RANGE | SD recent hitting/pitching rates are in valid ranges. |
Passed checks
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| PASS | batting | current | CHC | BATTING_REALISM | current:CHC hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | SD | BATTING_REALISM | current:SD hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | CHC | BATTING_REALISM | simulation:CHC hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | SD | BATTING_REALISM | simulation:SD hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | CHC | BATTING_TOTALS_SUM | current:CHC batting totals equal summed player lines. | |||
| PASS | batting_totals | current | SD | BATTING_TOTALS_SUM | current:SD batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | CHC | BATTING_TOTALS_SUM | simulation:CHC batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | SD | BATTING_TOTALS_SUM | simulation:SD batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | CHC | BAT_PITCH_BB_MATCH | simulation:CHC batting walks match SD pitching: 6. | |||
| PASS | boxscore_crosscheck | simulation | CHC | BAT_PITCH_HR_MATCH | simulation:CHC batting home runs match SD pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | CHC | BAT_PITCH_H_MATCH | simulation:CHC batting hits match SD pitching: 10. | |||
| PASS | boxscore_crosscheck | simulation | CHC | BAT_PITCH_SO_MATCH | simulation:CHC batting strikeouts match SD pitching: 6. | |||
| PASS | boxscore_crosscheck | simulation | CHC | PA_BF_MATCH | simulation:CHC PA=43 matches SD BF=43. | |||
| PASS | boxscore_crosscheck | simulation | CHC | RUNS_MATCH_FINAL | simulation:CHC runs match final score and opposing pitching runs: 8. | |||
| PASS | boxscore_crosscheck | simulation | SD | BAT_PITCH_BB_MATCH | simulation:SD batting walks match CHC pitching: 6. | |||
| PASS | boxscore_crosscheck | simulation | SD | BAT_PITCH_HR_MATCH | simulation:SD batting home runs match CHC pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | SD | BAT_PITCH_H_MATCH | simulation:SD batting hits match CHC pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | SD | BAT_PITCH_SO_MATCH | simulation:SD batting strikeouts match CHC pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | SD | PA_BF_MATCH | simulation:SD PA=40 matches CHC BF=40. | |||
| PASS | boxscore_crosscheck | simulation | SD | RUNS_MATCH_FINAL | simulation:SD runs match final score and opposing pitching runs: 4. | |||
| PASS | current_payload | current | CHC | CURRENT_LINEUP_SHAPE | CHC current lineup has 9 expected positions. | |||
| PASS | current_payload | current | CHC | CURRENT_MODEL_ZERO_FALLBACK | CHC current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | CHC | CURRENT_NAMES_PRESENT | CHC current hitter names are populated. | |||
| PASS | current_payload | current | SD | CURRENT_LINEUP_SHAPE | SD current lineup has 9 expected positions. | |||
| PASS | current_payload | current | SD | CURRENT_MODEL_ZERO_FALLBACK | SD current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | SD | CURRENT_NAMES_PRESENT | SD current hitter names are populated. | |||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.666. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.666. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.334. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 12 is reasonably close to low-score expected_total_runs 10.4. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.276/0.652. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: CHC 10, SD 7. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: CHC 8 - SD 4. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_CHC@SD. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: CHC@SD. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 180. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 190. | |||||
| PASS | pitch_count | simulation | CHC | PITCH_COUNT_TOTAL_MATCH | CHC pitch_count_summary total, row sum, and pitching total all match: 180. | |||
| PASS | pitch_count | simulation | SD | PITCH_COUNT_TOTAL_MATCH | SD pitch_count_summary total, row sum, and pitching total all match: 190. | |||
| PASS | pitching | current | CHC | PITCHING_REALISM | current:CHC pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | CHC | STARTER_PRESENT | current:CHC includes a starter/opener role. | |||
| PASS | pitching | current | SD | PITCHING_REALISM | current:SD pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | SD | STARTER_PRESENT | current:SD includes a starter/opener role. | |||
| PASS | pitching | simulation | CHC | PITCHING_REALISM | simulation:CHC pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | CHC | STARTER_PRESENT | simulation:CHC includes a starter/opener role. | |||
| PASS | pitching | simulation | SD | PITCHING_REALISM | simulation:SD pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | SD | STARTER_PRESENT | simulation:SD includes a starter/opener role. | |||
| PASS | pitching_totals | current | CHC | PITCHING_TOTALS_SUM | current:CHC pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | CHC | PITCHING_TOTALS_SUM | current:CHC pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | SD | PITCHING_TOTALS_SUM | current:SD pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | SD | PITCHING_TOTALS_SUM | current:SD pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | CHC | PITCHING_TOTALS_SUM | simulation:CHC pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | CHC | PITCHING_TOTALS_SUM | simulation:CHC pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | SD | PITCHING_TOTALS_SUM | simulation:SD pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | SD | PITCHING_TOTALS_SUM | simulation:SD pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: CHC 6 - 4 SD. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: CHC 8 - 4 SD. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: CHC wins 8-4. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.666. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 7/10 (0.700). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 6/10 (0.600). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: CHC wins 8-4. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: CHC wins 8-4. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 8-4. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 6-4, final 8-4 (delta 2). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 12. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: CHC wins 8-4. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | CHC | RECENT_FORM_RANGE | CHC recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | SD | RECENT_FORM_RANGE | SD recent hitting/pitching rates are in valid ranges. |
Info/context findings
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| INFO | current_payload | current | CHC | CURRENT_PITCHER_DUPLICATION | CHC pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | SD | CURRENT_PITCHER_DUPLICATION | SD pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
Score evolution
| step | away_runs | home_runs | confidence | description |
|---|---|---|---|---|
| historical_ml | 3.9642584323883057 | 5.07404899597168 | Base ML historical model prediction | |
| variance_applied | 4 | 5 | Random variance applied (0.9-1.1) | |
| enhanced_prediction | 6 | 4 | 0.758 | Enhanced ML with recent form, H2H, low-score analysis |
| capped_target | 6 | 4 | Capped at max 12 realistic runs | |
| simulation_result | 8 | 4 | Final inning-by-inning simulation result |
Inning-by-inning linescore
| team | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | R | H |
|---|---|---|---|---|---|---|---|---|---|---|---|
| CHC | 1 | 1 | 6 | 0 | 0 | 0 | 0 | 0 | 0 | 8 | 10 |
| SD | 0 | 2 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 4 | 7 |
Team totals - current + final simulation
| src | team | type | AB | H | 2B | 3B | HR | RBI | R | BB | SO | SF | HBP | SB | CS | IP | ER | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | CHC | batting | 28 | 9 | 0 | 0 | 0 | 3 | 8 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | CHC | pitching | 3 | 0 | 3 | 0 | 8 | 9.0 | 3 | 0 | 0 | ||||||||
| current | SD | batting | 28 | 6 | 0 | 0 | 0 | 2 | 4 | 1 | 9 | 0 | 0 | 0 | 0 | ||||
| current | SD | pitching | 6 | 0 | 6 | 0 | 11 | 9.0 | 6 | 0 | 0 | ||||||||
| simulation | CHC | batting | 36 | 10 | 1 | 0 | 1 | 8 | 8 | 6 | 6 | 1 | 0 | ||||||
| simulation | CHC | pitching | 7 | 1 | 4 | 6 | 5 | 9.0 | 4 | 40 | 180 | ||||||||
| simulation | SD | batting | 34 | 7 | 0 | 0 | 1 | 4 | 4 | 6 | 5 | 0 | 0 | ||||||
| simulation | SD | pitching | 10 | 1 | 8 | 6 | 6 | 9.0 | 8 | 43 | 190 |
Batting lines - current + final simulation
| src | team | order | pos | name | AB | H | 2B | 3B | HR | R | RBI | BB | SO | HBP | AVG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | CHC | 1B | Michael Busch | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CHC | 3B | Alex Bregman | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CHC | C | Carson Kelly | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CHC | 2B | Nico Hoerner | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.250 | |
| current | CHC | DH | Moisés Ballesteros | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | CHC | SS | Dansby Swanson | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | CHC | CF | Pete Crow-Armstrong | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CHC | RF | Seiya Suzuki | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CHC | LF | Ian Happ | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | SD | LF | Ramón Laureano | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.250 | |
| current | SD | 3B | Manny Machado | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | SD | 1B | Gavin Sheets | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | SD | DH | Miguel Andujar | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | SD | 2B | Jake Cronenworth | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 | |
| current | SD | RF | Fernando Tatis Jr. | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | SD | SS | Xander Bogaerts | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | SD | C | Freddy Fermin | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.000 | |
| current | SD | CF | Jackson Merrill | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 | |
| simulation | CHC | 1 | 2B | Nico Hoerner | 5 | 1 | 0 | 0 | 1 | 1 | 4 | 0 | 1 | 0 | 0.200 |
| simulation | CHC | 2 | 1B | Michael Busch | 5 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.400 |
| simulation | CHC | 3 | 3B | Alex Bregman | 4 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0.250 |
| simulation | CHC | 4 | LF | Ian Happ | 4 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0.250 |
| simulation | CHC | 5 | RF | Seiya Suzuki | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0.250 |
| simulation | CHC | 6 | DH | Moisés Ballesteros | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.000 |
| simulation | CHC | 7 | C | Carson Kelly | 4 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0.250 |
| simulation | CHC | 8 | CF | Pete Crow-Armstrong | 3 | 3 | 0 | 0 | 0 | 1 | 2 | 1 | 0 | 0 | 1.000 |
| simulation | CHC | 9 | SS | Dansby Swanson | 2 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0.000 |
| simulation | SD | 1 | LF | Ramón Laureano | 4 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0.250 |
| simulation | SD | 2 | RF | Fernando Tatis Jr. | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0.000 |
| simulation | SD | 3 | CF | Jackson Merrill | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.200 |
| simulation | SD | 4 | 3B | Manny Machado | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 1 | 0 | 0.000 |
| simulation | SD | 5 | SS | Xander Bogaerts | 4 | 2 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0.500 |
| simulation | SD | 6 | 1B | Gavin Sheets | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0.000 |
| simulation | SD | 7 | DH | Miguel Andujar | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.000 |
| simulation | SD | 8 | C | Freddy Fermin | 3 | 2 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0.667 |
| simulation | SD | 9 | 2B | Jake Cronenworth | 4 | 1 | 0 | 0 | 0 | 1 | 2 | 0 | 0 | 0 | 0.250 |
Pitching lines - current + final simulation
| src | team | order | name | role | IP | H | R | ER | BB | SO | HR | BF | Pitches | sim_ERA | season_ERA | season_WHIP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | CHC | 1 | Jameson Taillon | Starter | 6.0 | 1 | 1 | 1 | 0 | 3 | 0 | 0 | 0 | 1.50 | 4.63 | 1.32 |
| current | CHC | 2 | Corbin Martin | Middle Reliever | 1.1 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 6.75 | 0.00 | 0.50 |
| current | CHC | 3 | Ryan Rolison | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 0.00 | 0.50 |
| current | CHC | 4 | Ben Brown | Middle Reliever | 0.1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 27.00 | 2.22 | 1.18 |
| current | CHC | 5 | Hoby Milner | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2.81 | 1.09 | |
| current | CHC | 6 | Jacob Webb | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6.14 | 2.50 | |
| current | SD | 1 | Matt Waldron | Starter | 4.0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 2.25 | 13.17 | 2.44 |
| current | SD | 2 | Adrian Morejon | Middle Reliever | 1.1 | 1 | 1 | 1 | 0 | 3 | 0 | 0 | 0 | 6.75 | 6.23 | 1.62 |
| current | SD | 3 | Jason Adam | Middle Reliever | 1.1 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 6.75 | 1.43 | 0.79 |
| current | SD | 4 | Mason Miller | Middle Reliever | 1.0 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 9.00 | 1.28 | 0.57 |
| current | SD | 5 | Bradgley Rodriguez | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 13.50 | 2.65 | 1.57 |
| current | SD | 6 | David Morgan | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 13.50 | 7.36 | 2.55 |
| simulation | CHC | 1 | Jameson Taillon | Starter | 4.0 | 3 | 2 | 2 | 4 | 3 | 1 | 19 | 96 | 4.50 | 4.63 | 1.32 |
| simulation | CHC | 2 | Ben Brown | Middle Reliever | 1.0 | 2 | 1 | 1 | 1 | 1 | 0 | 6 | 28 | 9.00 | 2.22 | 1.18 |
| simulation | CHC | 3 | Jacob Webb | Middle Reliever | 1.0 | 1 | 1 | 1 | 1 | 0 | 0 | 5 | 19 | 9.00 | 6.14 | 2.50 |
| simulation | CHC | 4 | Hoby Milner | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 10 | 0.00 | 2.81 | 1.09 |
| simulation | CHC | 5 | Corbin Martin | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 11 | 0.00 | 0.00 | 0.50 |
| simulation | CHC | 6 | Ryan Rolison | Middle Reliever | 1.0 | 1 | 0 | 0 | 0 | 1 | 0 | 4 | 16 | 0.00 | 0.00 | 0.50 |
| simulation | SD | 1 | Matt Waldron | Starter | 3.0 | 8 | 7 | 7 | 5 | 1 | 1 | 22 | 103 | 21.00 | 13.17 | 2.44 |
| simulation | SD | 2 | Mason Miller | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 13 | 0.00 | 1.28 | 0.57 |
| simulation | SD | 3 | Adrian Morejon | Middle Reliever | 1.0 | 1 | 0 | 0 | 0 | 0 | 0 | 4 | 17 | 0.00 | 6.23 | 1.62 |
| simulation | SD | 4 | Jason Adam | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 11 | 0.00 | 1.43 | 0.79 |
| simulation | SD | 5 | Bradgley Rodriguez | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 2 | 0 | 4 | 23 | 0.00 | 2.65 | 1.57 |
| simulation | SD | 6 | David Morgan | Middle Reliever | 1.0 | 1 | 1 | 1 | 0 | 1 | 0 | 4 | 14 | 9.00 | 7.36 | 2.55 |
| simulation | SD | 7 | Walker Buehler | Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 9 | 0.00 |
Pitch count summary
| team | pitcher | role | IP | R | H | BB | SO | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|
| CHC | Jameson Taillon | Starter | 4.0 | 3 | 3 | 4 | 3 | 19 | 96 |
| CHC | Ben Brown | Middle Reliever | 1.0 | 1 | 2 | 1 | 1 | 6 | 28 |
| CHC | Jacob Webb | Middle Reliever | 1.0 | 0 | 1 | 1 | 0 | 5 | 19 |
| CHC | Hoby Milner | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 10 |
| CHC | Corbin Martin | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 11 |
| CHC | Ryan Rolison | Middle Reliever | 1.0 | 0 | 1 | 0 | 1 | 4 | 16 |
| SD | Matt Waldron | Starter | 3.0 | 8 | 8 | 5 | 1 | 22 | 103 |
| SD | Mason Miller | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 13 |
| SD | Adrian Morejon | Middle Reliever | 1.0 | 0 | 1 | 0 | 0 | 4 | 17 |
| SD | Jason Adam | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 11 |
| SD | Bradgley Rodriguez | Middle Reliever | 1.0 | 0 | 0 | 1 | 2 | 4 | 23 |
| SD | David Morgan | Middle Reliever | 1.0 | 0 | 1 | 0 | 1 | 4 | 14 |
| SD | Walker Buehler | Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 9 |
Audit rule catalog
| rule | status | critical | error | warning | pass | description |
|---|---|---|---|---|---|---|
| BATTING_REALISM | good | 0 | 0 | 0 | 4 | Player/team batting lines obey baseball constraints. |
| BATTING_TOTALS_SUM | good | 0 | 0 | 0 | 4 | Team batting totals equal the sum of player batting lines. |
| BAT_PITCH_BB_MATCH | good | 0 | 0 | 0 | 2 | Batting walks match opposing pitching walks allowed. |
| BAT_PITCH_HR_MATCH | good | 0 | 0 | 0 | 2 | Batting home runs match opposing pitching home runs allowed. |
| BAT_PITCH_H_MATCH | good | 0 | 0 | 0 | 2 | Batting hits match opposing pitching hits allowed. |
| BAT_PITCH_SO_MATCH | good | 0 | 0 | 0 | 2 | Batting strikeouts match opposing pitching strikeouts. |
| CONFIDENCE_RANGE | good | 0 | 0 | 0 | 5 | Confidence values are between 0 and 1. |
| CURRENT_FINALIZED_MATCH_BOX | warning | 0 | 0 | 4 | 0 | Current finalized player totals agree with final simulation box score. |
| CURRENT_LINEUP_SHAPE | good | 0 | 0 | 0 | 2 | Current predicted_performance contains a plausible 9-player lineup. |
| CURRENT_MODEL_ZERO_FALLBACK | good | 0 | 0 | 0 | 2 | Current model payload did not rely too heavily on all-zero model predictions. |
| CURRENT_NAMES_PRESENT | good | 0 | 0 | 0 | 2 | Current predicted_performance has usable player names. |
| CURRENT_PITCHER_DUPLICATION | info | 0 | 0 | 0 | 0 | Pitcher lists duplicated across current sections are detected and reconciled. |
| CURRENT_SCORE_MATCHES_SIM | good | 0 | 0 | 0 | 1 | game.predicted_runs matches scoring_simulation.final_score. |
| DATE_PARSE | good | 0 | 0 | 0 | 1 | Game date can be parsed as an ISO date. |
| FILENAME_GAME_ID_MATCH | good | 0 | 0 | 0 | 1 | Filename and game_id identify the same game. |
| FILENAME_TEAM_MATCH | good | 0 | 0 | 0 | 1 | Filename teams match the teams inside the JSON. |
| GAME_SUMMARY_MATCH | good | 0 | 0 | 0 | 1 | game_summary text agrees with final score. |
| H2H_DATA_LEAKAGE | warning | 0 | 0 | 1 | 0 | Head-to-head history does not include same-day or future games in pregame mode. |
| INNINGS_COUNT | good | 0 | 0 | 0 | 1 | Inning count is valid for MLB. |
| INNING_OUTS | not triggered | 0 | 0 | 0 | 0 | Each played half inning has valid outs. |
| INNING_PLAY_SUMS | good | 0 | 0 | 0 | 1 | Detailed plays agree with inning runs, hits, outs, and pitches. |
| INNING_SEQUENCE | good | 0 | 0 | 0 | 1 | Innings are sequential and unique. |
| INNING_TOTAL_HITS | good | 0 | 0 | 0 | 1 | Inning hits sum to batting team hits. |
| INNING_TOTAL_RUNS | good | 0 | 0 | 0 | 1 | Inning runs sum to final score. |
| LOW_SCORE_ANALYSIS | good | 0 | 0 | 0 | 3 | Low-score probability factors are valid and directionally consistent. |
| PA_BF_MATCH | good | 0 | 0 | 0 | 2 | Team plate appearances match opposing batters faced. |
| PITCHING_REALISM | good | 0 | 0 | 0 | 4 | Pitcher/team pitching lines obey baseball constraints. |
| PITCHING_TOTALS_SUM | good | 0 | 0 | 0 | 8 | Team pitching totals equal the sum of pitcher lines. |
| PITCH_COUNT_PITCHER_MATCH | warning | 0 | 0 | 4 | 0 | Pitch count summary pitcher rows agree with pitching box score. |
| PITCH_COUNT_TOTAL_MATCH | good | 0 | 0 | 0 | 4 | Pitch count summary totals match team pitching totals. |
| PITCH_DETAIL_SANITY | good | 0 | 0 | 0 | 1 | Pitch-by-pitch details have plausible values. |
| PREDICTION_COMPARISON_MATCH | good | 0 | 0 | 0 | 3 | prediction_comparison scores agree with target/final result. |
| RECENT_FORM_RANGE | good | 0 | 0 | 0 | 4 | Recent-form metrics are within valid numeric ranges. |
| RECONCILIATION_PROPAGATION | info | 0 | 0 | 0 | 0 | When score_target_reconciliation is used, all final-facing sections are regenerated from the reconciled score. |
| REPORT_COMPLETE | good | 0 | 0 | 0 | 1 | Report includes every audit result in the all-findings table. |
| REPORT_CSV_EXPORT | not triggered | 0 | 0 | 0 | 0 | Optional CSV exports were written for summary and problem rows. |
| RUNS_MATCH_FINAL | good | 0 | 0 | 0 | 2 | Batting/pitching runs agree with final score. |
| SCHEMA_ROOTS_PRESENT | good | 0 | 0 | 0 | 1 | Expected JSON root sections exist and can be audited. |
| SCORE_NO_TIE | good | 0 | 0 | 0 | 1 | Final MLB score has a clear winner. |
| SCORE_STEP_FINAL_MATCH | good | 0 | 0 | 0 | 1 | score_evolution simulation_result matches final score. |
| SCORE_STEP_ORDER | good | 0 | 0 | 0 | 1 | Score evolution contains the expected ordered steps. |
| STARTER_PRESENT | good | 0 | 0 | 0 | 4 | Pitching staff includes a starter or opener when expected. |
| TARGET_SCORE_DRIFT | good | 0 | 0 | 0 | 1 | Final score does not drift too far from enhanced target. |
| TEAM_RECENT_RECORD | warning | 0 | 0 | 2 | 0 | team_recent_performance wins and win_pct agree with games_analyzed. |
| TOTAL_RUNS_MATCH | good | 0 | 0 | 0 | 1 | total_runs equals away + home runs. |
| WINNER_FIELD_MATCH | good | 0 | 0 | 0 | 1 | winner field agrees with the final score. |
20260429_COL@CIN
20260429_COL@CIN.json • 2026-04-29
Final simulation is structurally valid with warnings to review. Risk score: 80.
Action summary - what to fix first
| Level | Problem group / fix | Count | Teams | Example |
|---|---|---|---|---|
| WARN | Current payload is not synced to final box score The final simulation box score is treated as the source of truth. Sync game.predicted_performance finalized_stats/pitcher projections after scoring_simulation, or stop comparing that pre-simulation payload as final output. | 0C / 0E / 4W | CIN, COL | CIN current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=39; H: current=7, sim=9; 2B: current=0, sim=3; RBI: current=2, sim=5; BB: current=0, sim=4; HBP: current=0, sim=1). CIN current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=12; R: current=3, sim=4; ER: current=3, sim=4; BB: current=0, sim=5; HR: current=0, sim=1). |
| WARN | Pitch count summary differs by pitcher Pitch-count rows disagree with individual pitching box-score rows. Recalculate pitch_count_summary from the same final pitcher ledger used by box_score.pitching. | 0C / 0E / 2W | COL | COL pitch_count row for Juan Mejia differs from pitching box score: runs_allowed/R: summary=0, box=1. COL pitch_count row for Tomoyuki Sugano differs from pitching box score: runs_allowed/R: summary=1, box=0. |
| WARN | team_recent_performance record bug wins and win_pct do not agree. Either calculate wins correctly or derive win_pct directly as wins/games_analyzed. | 0C / 0E / 2W | CIN, COL | CIN wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. COL wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. |
Problems table - exact rows
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | CIN | CURRENT_FINALIZED_MATCH_BOX | CIN current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=39; H: current=7, sim=9; 2B: current=0, sim=3; RBI: current=2, sim=5; BB: current=0, sim=4; HBP: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | CIN | CURRENT_FINALIZED_MATCH_BOX | CIN current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=12; R: current=3, sim=4; ER: current=3, sim=4; BB: current=0, sim=5; HR: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | COL | CURRENT_FINALIZED_MATCH_BOX | COL current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=27, sim=42; H: current=8, sim=12; 2B: current=0, sim=1; HR: current=0, sim=1; RBI: current=2, sim=4; BB: current=0, sim=5; SO: current=9, sim=8; HBP: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | COL | CURRENT_FINALIZED_MATCH_BOX | COL current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=4, sim=9; R: current=4, sim=5; ER: current=4, sim=5; BB: current=0, sim=4; SO: current=11, sim=9). | |||
| WARN | pitch_count | simulation | COL | Juan Mejia | PITCH_COUNT_PITCHER_MATCH | COL pitch_count row for Juan Mejia differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | COL | Tomoyuki Sugano | PITCH_COUNT_PITCHER_MATCH | COL pitch_count row for Tomoyuki Sugano differs from pitching box score: runs_allowed/R: summary=1, box=0. | ||
| WARN | team_recent_performance | current | CIN | TEAM_RECENT_RECORD | CIN wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | COL | TEAM_RECENT_RECORD | COL wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. |
All findings - complete audit trail
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | CIN | CURRENT_FINALIZED_MATCH_BOX | CIN current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=39; H: current=7, sim=9; 2B: current=0, sim=3; RBI: current=2, sim=5; BB: current=0, sim=4; HBP: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | CIN | CURRENT_FINALIZED_MATCH_BOX | CIN current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=12; R: current=3, sim=4; ER: current=3, sim=4; BB: current=0, sim=5; HR: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | COL | CURRENT_FINALIZED_MATCH_BOX | COL current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=27, sim=42; H: current=8, sim=12; 2B: current=0, sim=1; HR: current=0, sim=1; RBI: current=2, sim=4; BB: current=0, sim=5; SO: current=9, sim=8; HBP: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | COL | CURRENT_FINALIZED_MATCH_BOX | COL current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=4, sim=9; R: current=4, sim=5; ER: current=4, sim=5; BB: current=0, sim=4; SO: current=11, sim=9). | |||
| WARN | pitch_count | simulation | COL | Juan Mejia | PITCH_COUNT_PITCHER_MATCH | COL pitch_count row for Juan Mejia differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | COL | Tomoyuki Sugano | PITCH_COUNT_PITCHER_MATCH | COL pitch_count row for Tomoyuki Sugano differs from pitching box score: runs_allowed/R: summary=1, box=0. | ||
| WARN | team_recent_performance | current | CIN | TEAM_RECENT_RECORD | CIN wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | COL | TEAM_RECENT_RECORD | COL wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. | |||
| INFO | current_payload | current | CIN | CURRENT_PITCHER_DUPLICATION | CIN pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | COL | CURRENT_PITCHER_DUPLICATION | COL pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. | |||||
| PASS | batting | current | CIN | BATTING_REALISM | current:CIN hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | COL | BATTING_REALISM | current:COL hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | CIN | BATTING_REALISM | simulation:CIN hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | COL | BATTING_REALISM | simulation:COL hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | CIN | BATTING_TOTALS_SUM | current:CIN batting totals equal summed player lines. | |||
| PASS | batting_totals | current | COL | BATTING_TOTALS_SUM | current:COL batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | CIN | BATTING_TOTALS_SUM | simulation:CIN batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | COL | BATTING_TOTALS_SUM | simulation:COL batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | CIN | BAT_PITCH_BB_MATCH | simulation:CIN batting walks match COL pitching: 4. | |||
| PASS | boxscore_crosscheck | simulation | CIN | BAT_PITCH_HR_MATCH | simulation:CIN batting home runs match COL pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | CIN | BAT_PITCH_H_MATCH | simulation:CIN batting hits match COL pitching: 9. | |||
| PASS | boxscore_crosscheck | simulation | CIN | BAT_PITCH_SO_MATCH | simulation:CIN batting strikeouts match COL pitching: 9. | |||
| PASS | boxscore_crosscheck | simulation | CIN | PA_BF_MATCH | simulation:CIN PA=44 matches COL BF=44. | |||
| PASS | boxscore_crosscheck | simulation | CIN | RUNS_MATCH_FINAL | simulation:CIN runs match final score and opposing pitching runs: 5. | |||
| PASS | boxscore_crosscheck | simulation | COL | BAT_PITCH_BB_MATCH | simulation:COL batting walks match CIN pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | COL | BAT_PITCH_HR_MATCH | simulation:COL batting home runs match CIN pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | COL | BAT_PITCH_H_MATCH | simulation:COL batting hits match CIN pitching: 12. | |||
| PASS | boxscore_crosscheck | simulation | COL | BAT_PITCH_SO_MATCH | simulation:COL batting strikeouts match CIN pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | COL | PA_BF_MATCH | simulation:COL PA=48 matches CIN BF=48. | |||
| PASS | boxscore_crosscheck | simulation | COL | RUNS_MATCH_FINAL | simulation:COL runs match final score and opposing pitching runs: 4. | |||
| PASS | current_payload | current | CIN | CURRENT_LINEUP_SHAPE | CIN current lineup has 9 expected positions. | |||
| PASS | current_payload | current | CIN | CURRENT_MODEL_ZERO_FALLBACK | CIN current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | CIN | CURRENT_NAMES_PRESENT | CIN current hitter names are populated. | |||
| PASS | current_payload | current | COL | CURRENT_LINEUP_SHAPE | COL current lineup has 9 expected positions. | |||
| PASS | current_payload | current | COL | CURRENT_MODEL_ZERO_FALLBACK | COL current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | COL | CURRENT_NAMES_PRESENT | COL current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.382. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.618. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.618. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 9 is reasonably close to low-score expected_total_runs 10.3. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.303/0.707. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 10 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: COL 12, CIN 9. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: COL 4 - CIN 5. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_COL@CIN. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: COL@CIN. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 182. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 198. | |||||
| PASS | pitch_count | simulation | CIN | PITCH_COUNT_PITCHER_MATCH | CIN pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | CIN | PITCH_COUNT_TOTAL_MATCH | CIN pitch_count_summary total, row sum, and pitching total all match: 198. | |||
| PASS | pitch_count | simulation | COL | PITCH_COUNT_TOTAL_MATCH | COL pitch_count_summary total, row sum, and pitching total all match: 182. | |||
| PASS | pitching | current | CIN | PITCHING_REALISM | current:CIN pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | CIN | STARTER_PRESENT | current:CIN includes a starter/opener role. | |||
| PASS | pitching | current | COL | PITCHING_REALISM | current:COL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | COL | STARTER_PRESENT | current:COL includes a starter/opener role. | |||
| PASS | pitching | simulation | CIN | PITCHING_REALISM | simulation:CIN pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | CIN | STARTER_PRESENT | simulation:CIN includes a starter/opener role. | |||
| PASS | pitching | simulation | COL | PITCHING_REALISM | simulation:COL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | COL | STARTER_PRESENT | simulation:COL includes a starter/opener role. | |||
| PASS | pitching_totals | current | CIN | PITCHING_TOTALS_SUM | current:CIN pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | CIN | PITCHING_TOTALS_SUM | current:CIN pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | COL | PITCHING_TOTALS_SUM | current:COL pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | current | COL | PITCHING_TOTALS_SUM | current:COL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | CIN | PITCHING_TOTALS_SUM | simulation:CIN pitching IP total matches pitcher sum: 10.0. | |||
| PASS | pitching_totals | simulation | CIN | PITCHING_TOTALS_SUM | simulation:CIN pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | COL | PITCHING_TOTALS_SUM | simulation:COL pitching IP total matches pitcher sum: 10.0. | |||
| PASS | pitching_totals | simulation | COL | PITCHING_TOTALS_SUM | simulation:COL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: COL 4 - 6 CIN. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: COL 4 - 5 CIN. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: CIN wins 5-4 (Extra Innings - 10). | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.618. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 6/10 (0.600). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 8/10 (0.800). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: CIN wins 5-4 (Extra Innings - 10). | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: CIN wins 4-5. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 4-5. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 4-6, final 4-5 (delta 1). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 9. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: CIN wins 5-4 (Extra Innings - 10). | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | CIN | RECENT_FORM_RANGE | CIN recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | COL | RECENT_FORM_RANGE | COL recent hitting/pitching rates are in valid ranges. |
Passed checks
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| PASS | batting | current | CIN | BATTING_REALISM | current:CIN hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | COL | BATTING_REALISM | current:COL hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | CIN | BATTING_REALISM | simulation:CIN hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | COL | BATTING_REALISM | simulation:COL hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | CIN | BATTING_TOTALS_SUM | current:CIN batting totals equal summed player lines. | |||
| PASS | batting_totals | current | COL | BATTING_TOTALS_SUM | current:COL batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | CIN | BATTING_TOTALS_SUM | simulation:CIN batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | COL | BATTING_TOTALS_SUM | simulation:COL batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | CIN | BAT_PITCH_BB_MATCH | simulation:CIN batting walks match COL pitching: 4. | |||
| PASS | boxscore_crosscheck | simulation | CIN | BAT_PITCH_HR_MATCH | simulation:CIN batting home runs match COL pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | CIN | BAT_PITCH_H_MATCH | simulation:CIN batting hits match COL pitching: 9. | |||
| PASS | boxscore_crosscheck | simulation | CIN | BAT_PITCH_SO_MATCH | simulation:CIN batting strikeouts match COL pitching: 9. | |||
| PASS | boxscore_crosscheck | simulation | CIN | PA_BF_MATCH | simulation:CIN PA=44 matches COL BF=44. | |||
| PASS | boxscore_crosscheck | simulation | CIN | RUNS_MATCH_FINAL | simulation:CIN runs match final score and opposing pitching runs: 5. | |||
| PASS | boxscore_crosscheck | simulation | COL | BAT_PITCH_BB_MATCH | simulation:COL batting walks match CIN pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | COL | BAT_PITCH_HR_MATCH | simulation:COL batting home runs match CIN pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | COL | BAT_PITCH_H_MATCH | simulation:COL batting hits match CIN pitching: 12. | |||
| PASS | boxscore_crosscheck | simulation | COL | BAT_PITCH_SO_MATCH | simulation:COL batting strikeouts match CIN pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | COL | PA_BF_MATCH | simulation:COL PA=48 matches CIN BF=48. | |||
| PASS | boxscore_crosscheck | simulation | COL | RUNS_MATCH_FINAL | simulation:COL runs match final score and opposing pitching runs: 4. | |||
| PASS | current_payload | current | CIN | CURRENT_LINEUP_SHAPE | CIN current lineup has 9 expected positions. | |||
| PASS | current_payload | current | CIN | CURRENT_MODEL_ZERO_FALLBACK | CIN current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | CIN | CURRENT_NAMES_PRESENT | CIN current hitter names are populated. | |||
| PASS | current_payload | current | COL | CURRENT_LINEUP_SHAPE | COL current lineup has 9 expected positions. | |||
| PASS | current_payload | current | COL | CURRENT_MODEL_ZERO_FALLBACK | COL current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | COL | CURRENT_NAMES_PRESENT | COL current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.382. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.618. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.618. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 9 is reasonably close to low-score expected_total_runs 10.3. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.303/0.707. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 10 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: COL 12, CIN 9. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: COL 4 - CIN 5. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_COL@CIN. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: COL@CIN. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 182. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 198. | |||||
| PASS | pitch_count | simulation | CIN | PITCH_COUNT_PITCHER_MATCH | CIN pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | CIN | PITCH_COUNT_TOTAL_MATCH | CIN pitch_count_summary total, row sum, and pitching total all match: 198. | |||
| PASS | pitch_count | simulation | COL | PITCH_COUNT_TOTAL_MATCH | COL pitch_count_summary total, row sum, and pitching total all match: 182. | |||
| PASS | pitching | current | CIN | PITCHING_REALISM | current:CIN pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | CIN | STARTER_PRESENT | current:CIN includes a starter/opener role. | |||
| PASS | pitching | current | COL | PITCHING_REALISM | current:COL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | COL | STARTER_PRESENT | current:COL includes a starter/opener role. | |||
| PASS | pitching | simulation | CIN | PITCHING_REALISM | simulation:CIN pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | CIN | STARTER_PRESENT | simulation:CIN includes a starter/opener role. | |||
| PASS | pitching | simulation | COL | PITCHING_REALISM | simulation:COL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | COL | STARTER_PRESENT | simulation:COL includes a starter/opener role. | |||
| PASS | pitching_totals | current | CIN | PITCHING_TOTALS_SUM | current:CIN pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | CIN | PITCHING_TOTALS_SUM | current:CIN pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | COL | PITCHING_TOTALS_SUM | current:COL pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | current | COL | PITCHING_TOTALS_SUM | current:COL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | CIN | PITCHING_TOTALS_SUM | simulation:CIN pitching IP total matches pitcher sum: 10.0. | |||
| PASS | pitching_totals | simulation | CIN | PITCHING_TOTALS_SUM | simulation:CIN pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | COL | PITCHING_TOTALS_SUM | simulation:COL pitching IP total matches pitcher sum: 10.0. | |||
| PASS | pitching_totals | simulation | COL | PITCHING_TOTALS_SUM | simulation:COL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: COL 4 - 6 CIN. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: COL 4 - 5 CIN. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: CIN wins 5-4 (Extra Innings - 10). | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.618. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 6/10 (0.600). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 8/10 (0.800). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: CIN wins 5-4 (Extra Innings - 10). | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: CIN wins 4-5. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 4-5. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 4-6, final 4-5 (delta 1). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 9. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: CIN wins 5-4 (Extra Innings - 10). | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | CIN | RECENT_FORM_RANGE | CIN recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | COL | RECENT_FORM_RANGE | COL recent hitting/pitching rates are in valid ranges. |
Info/context findings
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| INFO | current_payload | current | CIN | CURRENT_PITCHER_DUPLICATION | CIN pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | COL | CURRENT_PITCHER_DUPLICATION | COL pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
Score evolution
| step | away_runs | home_runs | confidence | description |
|---|---|---|---|---|
| historical_ml | 4.569743633270264 | 5.923925876617432 | Base ML historical model prediction | |
| variance_applied | 4 | 6 | Random variance applied (0.9-1.1) | |
| enhanced_prediction | 4 | 6 | 0.764 | Enhanced ML with recent form, H2H, low-score analysis |
| capped_target | 4 | 6 | Capped at max 12 realistic runs | |
| simulation_result | 4 | 5 | Final inning-by-inning simulation result |
Inning-by-inning linescore
| team | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | R | H |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| COL | 2 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 4 | 12 |
| CIN | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 2 | 0 | 1 | 5 | 9 |
Team totals - current + final simulation
| src | team | type | AB | H | 2B | 3B | HR | RBI | R | BB | SO | SF | HBP | SB | CS | IP | ER | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | COL | batting | 27 | 8 | 0 | 0 | 0 | 2 | 4 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | COL | pitching | 4 | 0 | 4 | 0 | 11 | 8.0 | 4 | 0 | 0 | ||||||||
| current | CIN | batting | 28 | 7 | 0 | 0 | 0 | 2 | 5 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | CIN | pitching | 3 | 0 | 3 | 0 | 8 | 9.0 | 3 | 0 | 0 | ||||||||
| simulation | COL | batting | 42 | 12 | 1 | 0 | 1 | 4 | 4 | 5 | 8 | 0 | 1 | ||||||
| simulation | COL | pitching | 9 | 0 | 5 | 4 | 9 | 10.0 | 5 | 44 | 182 | ||||||||
| simulation | CIN | batting | 39 | 9 | 3 | 0 | 0 | 5 | 5 | 4 | 9 | 0 | 1 | ||||||
| simulation | CIN | pitching | 12 | 1 | 4 | 5 | 8 | 10.0 | 4 | 48 | 198 |
Batting lines - current + final simulation
| src | team | order | pos | name | AB | H | 2B | 3B | HR | R | RBI | BB | SO | HBP | AVG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | COL | LF | Jordan Beck | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | COL | DH | Tyler Freeman | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | COL | C | Hunter Goodman | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | COL | RF | Troy Johnston | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | COL | CF | Brenton Doyle | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | COL | SS | Ezequiel Tovar | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 | |
| current | COL | 2B | Willi Castro | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | COL | 3B | Kyle Karros | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | COL | 1B | TJ Rumfield | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | CIN | RF | Rece Hinds | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 | |
| current | CIN | LF | Spencer Steer | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CIN | SS | Elly De La Cruz | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.250 | |
| current | CIN | 2B | Matt McLain | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CIN | DH | Tyler Stephenson | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 | |
| current | CIN | C | Jose Trevino | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CIN | CF | Dane Myers | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CIN | 1B | Sal Stewart | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | CIN | 3B | Ke'Bryan Hayes | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| simulation | COL | 1 | LF | Jordan Beck | 6 | 2 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0.333 |
| simulation | COL | 2 | CF | Brenton Doyle | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 2 | 1 | 0 | 0.250 |
| simulation | COL | 3 | C | Hunter Goodman | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 1 | 0.200 |
| simulation | COL | 4 | DH | Tyler Freeman | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.200 |
| simulation | COL | 5 | SS | Ezequiel Tovar | 5 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.400 |
| simulation | COL | 6 | RF | Troy Johnston | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 2 | 1 | 0 | 0.333 |
| simulation | COL | 7 | 2B | Willi Castro | 5 | 2 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.400 |
| simulation | COL | 8 | 1B | TJ Rumfield | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.000 |
| simulation | COL | 9 | 3B | Kyle Karros | 4 | 2 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0.500 |
| simulation | CIN | 1 | CF | Dane Myers | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0.250 |
| simulation | CIN | 2 | 2B | Matt McLain | 5 | 2 | 2 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.400 |
| simulation | CIN | 3 | SS | Elly De La Cruz | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0.000 |
| simulation | CIN | 4 | 1B | Sal Stewart | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0.000 |
| simulation | CIN | 5 | LF | Spencer Steer | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.200 |
| simulation | CIN | 6 | DH | Tyler Stephenson | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0.250 |
| simulation | CIN | 7 | RF | Rece Hinds | 5 | 2 | 1 | 0 | 0 | 1 | 2 | 0 | 2 | 0 | 0.400 |
| simulation | CIN | 8 | C | Jose Trevino | 5 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | 2 | 0 | 0.400 |
| simulation | CIN | 9 | 3B | Ke'Bryan Hayes | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0.000 |
Pitching lines - current + final simulation
| src | team | order | name | role | IP | H | R | ER | BB | SO | HR | BF | Pitches | sim_ERA | season_ERA | season_WHIP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | COL | 1 | Tomoyuki Sugano | Starter | 5.2 | 1 | 1 | 1 | 0 | 4 | 0 | 0 | 0 | 1.59 | 3.54 | 1.18 |
| current | COL | 2 | Antonio Senzatela | Middle Reliever | 1.1 | 1 | 1 | 1 | 0 | 4 | 0 | 0 | 0 | 6.75 | 0.57 | 0.75 |
| current | COL | 3 | Brennan Bernardino | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 13.50 | 1.10 | 1.46 |
| current | COL | 4 | Jaden Hill | Middle Reliever | 0.1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 27.00 | 4.34 | 2.41 |
| current | COL | 5 | Juan Mejia | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6.55 | 2.09 | |
| current | COL | 6 | Victor Vodnik | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 7.23 | 2.05 | |
| current | CIN | 1 | Brandon Williamson | Starter | 4.1 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 2.08 | 5.72 | 1.61 |
| current | CIN | 2 | Brock Burke | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 0.75 | 1.33 |
| current | CIN | 3 | Graham Ashcraft | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 1.26 | 1.33 |
| current | CIN | 4 | Tony Santillan | Middle Reliever | 1.1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 6.75 | 2.21 | 1.15 |
| current | CIN | 5 | Connor Phillips | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 13.50 | 2.55 | 1.63 |
| current | CIN | 6 | Emilio Pagán | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4.46 | 1.24 | |
| simulation | COL | 1 | Tomoyuki Sugano | Starter | 6.0 | 4 | 0 | 0 | 1 | 3 | 0 | 23 | 91 | 0.00 | 3.54 | 1.18 |
| simulation | COL | 2 | Victor Vodnik | Middle Reliever | 1.0 | 2 | 1 | 1 | 1 | 2 | 0 | 6 | 25 | 9.00 | 7.23 | 2.05 |
| simulation | COL | 3 | Antonio Senzatela | Middle Reliever | 1.0 | 1 | 2 | 2 | 1 | 2 | 0 | 6 | 28 | 18.00 | 0.57 | 0.75 |
| simulation | COL | 4 | Juan Mejia | Middle Reliever | 1.0 | 0 | 1 | 1 | 1 | 1 | 0 | 4 | 20 | 9.00 | 6.55 | 2.09 |
| simulation | COL | 5 | Chase Dollander | Reliever | 1.0 | 2 | 1 | 1 | 0 | 1 | 0 | 5 | 18 | 9.00 | ||
| simulation | CIN | 1 | Brandon Williamson | Starter | 5.0 | 7 | 2 | 2 | 2 | 6 | 0 | 25 | 104 | 3.60 | 5.72 | 1.61 |
| simulation | CIN | 2 | Emilio Pagán | Middle Reliever | 1.0 | 2 | 1 | 1 | 1 | 0 | 0 | 6 | 20 | 9.00 | 4.46 | 1.24 |
| simulation | CIN | 3 | Tony Santillan | Middle Reliever | 1.0 | 1 | 0 | 0 | 0 | 1 | 0 | 4 | 15 | 0.00 | 2.21 | 1.15 |
| simulation | CIN | 4 | Graham Ashcraft | Middle Reliever | 1.0 | 1 | 1 | 1 | 1 | 1 | 1 | 5 | 26 | 9.00 | 1.26 | 1.33 |
| simulation | CIN | 5 | Connor Phillips | Middle Reliever | 2.0 | 1 | 0 | 0 | 1 | 0 | 0 | 8 | 33 | 0.00 | 2.55 | 1.63 |
Pitch count summary
| team | pitcher | role | IP | R | H | BB | SO | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|
| COL | Tomoyuki Sugano | Starter | 6.0 | 1 | 4 | 1 | 3 | 23 | 91 |
| COL | Victor Vodnik | Middle Reliever | 1.0 | 1 | 2 | 1 | 2 | 6 | 25 |
| COL | Antonio Senzatela | Middle Reliever | 1.0 | 2 | 1 | 1 | 2 | 6 | 28 |
| COL | Juan Mejia | Middle Reliever | 1.0 | 0 | 0 | 1 | 1 | 4 | 20 |
| COL | Chase Dollander | Reliever | 1.0 | 1 | 2 | 0 | 1 | 5 | 18 |
| CIN | Brandon Williamson | Starter | 5.0 | 2 | 7 | 2 | 6 | 25 | 104 |
| CIN | Emilio Pagán | Middle Reliever | 1.0 | 1 | 2 | 1 | 0 | 6 | 20 |
| CIN | Tony Santillan | Middle Reliever | 1.0 | 0 | 1 | 0 | 1 | 4 | 15 |
| CIN | Graham Ashcraft | Middle Reliever | 1.0 | 1 | 1 | 1 | 1 | 5 | 26 |
| CIN | Connor Phillips | Middle Reliever | 2.0 | 0 | 1 | 1 | 0 | 8 | 33 |
Audit rule catalog
| rule | status | critical | error | warning | pass | description |
|---|---|---|---|---|---|---|
| BATTING_REALISM | good | 0 | 0 | 0 | 4 | Player/team batting lines obey baseball constraints. |
| BATTING_TOTALS_SUM | good | 0 | 0 | 0 | 4 | Team batting totals equal the sum of player batting lines. |
| BAT_PITCH_BB_MATCH | good | 0 | 0 | 0 | 2 | Batting walks match opposing pitching walks allowed. |
| BAT_PITCH_HR_MATCH | good | 0 | 0 | 0 | 2 | Batting home runs match opposing pitching home runs allowed. |
| BAT_PITCH_H_MATCH | good | 0 | 0 | 0 | 2 | Batting hits match opposing pitching hits allowed. |
| BAT_PITCH_SO_MATCH | good | 0 | 0 | 0 | 2 | Batting strikeouts match opposing pitching strikeouts. |
| CONFIDENCE_RANGE | good | 0 | 0 | 0 | 5 | Confidence values are between 0 and 1. |
| CURRENT_FINALIZED_MATCH_BOX | warning | 0 | 0 | 4 | 0 | Current finalized player totals agree with final simulation box score. |
| CURRENT_LINEUP_SHAPE | good | 0 | 0 | 0 | 2 | Current predicted_performance contains a plausible 9-player lineup. |
| CURRENT_MODEL_ZERO_FALLBACK | good | 0 | 0 | 0 | 2 | Current model payload did not rely too heavily on all-zero model predictions. |
| CURRENT_NAMES_PRESENT | good | 0 | 0 | 0 | 2 | Current predicted_performance has usable player names. |
| CURRENT_PITCHER_DUPLICATION | info | 0 | 0 | 0 | 0 | Pitcher lists duplicated across current sections are detected and reconciled. |
| CURRENT_SCORE_MATCHES_SIM | good | 0 | 0 | 0 | 1 | game.predicted_runs matches scoring_simulation.final_score. |
| DATE_PARSE | good | 0 | 0 | 0 | 1 | Game date can be parsed as an ISO date. |
| FILENAME_GAME_ID_MATCH | good | 0 | 0 | 0 | 1 | Filename and game_id identify the same game. |
| FILENAME_TEAM_MATCH | good | 0 | 0 | 0 | 1 | Filename teams match the teams inside the JSON. |
| GAME_SUMMARY_MATCH | good | 0 | 0 | 0 | 1 | game_summary text agrees with final score. |
| H2H_DATA_LEAKAGE | good | 0 | 0 | 0 | 1 | Head-to-head history does not include same-day or future games in pregame mode. |
| INNINGS_COUNT | good | 0 | 0 | 0 | 1 | Inning count is valid for MLB. |
| INNING_OUTS | not triggered | 0 | 0 | 0 | 0 | Each played half inning has valid outs. |
| INNING_PLAY_SUMS | good | 0 | 0 | 0 | 1 | Detailed plays agree with inning runs, hits, outs, and pitches. |
| INNING_SEQUENCE | good | 0 | 0 | 0 | 1 | Innings are sequential and unique. |
| INNING_TOTAL_HITS | good | 0 | 0 | 0 | 1 | Inning hits sum to batting team hits. |
| INNING_TOTAL_RUNS | good | 0 | 0 | 0 | 1 | Inning runs sum to final score. |
| LOW_SCORE_ANALYSIS | good | 0 | 0 | 0 | 3 | Low-score probability factors are valid and directionally consistent. |
| PA_BF_MATCH | good | 0 | 0 | 0 | 2 | Team plate appearances match opposing batters faced. |
| PITCHING_REALISM | good | 0 | 0 | 0 | 4 | Pitcher/team pitching lines obey baseball constraints. |
| PITCHING_TOTALS_SUM | good | 0 | 0 | 0 | 8 | Team pitching totals equal the sum of pitcher lines. |
| PITCH_COUNT_PITCHER_MATCH | warning | 0 | 0 | 2 | 1 | Pitch count summary pitcher rows agree with pitching box score. |
| PITCH_COUNT_TOTAL_MATCH | good | 0 | 0 | 0 | 4 | Pitch count summary totals match team pitching totals. |
| PITCH_DETAIL_SANITY | good | 0 | 0 | 0 | 1 | Pitch-by-pitch details have plausible values. |
| PREDICTION_COMPARISON_MATCH | good | 0 | 0 | 0 | 3 | prediction_comparison scores agree with target/final result. |
| RECENT_FORM_RANGE | good | 0 | 0 | 0 | 4 | Recent-form metrics are within valid numeric ranges. |
| RECONCILIATION_PROPAGATION | info | 0 | 0 | 0 | 0 | When score_target_reconciliation is used, all final-facing sections are regenerated from the reconciled score. |
| REPORT_COMPLETE | good | 0 | 0 | 0 | 1 | Report includes every audit result in the all-findings table. |
| REPORT_CSV_EXPORT | not triggered | 0 | 0 | 0 | 0 | Optional CSV exports were written for summary and problem rows. |
| RUNS_MATCH_FINAL | good | 0 | 0 | 0 | 2 | Batting/pitching runs agree with final score. |
| SCHEMA_ROOTS_PRESENT | good | 0 | 0 | 0 | 1 | Expected JSON root sections exist and can be audited. |
| SCORE_NO_TIE | good | 0 | 0 | 0 | 1 | Final MLB score has a clear winner. |
| SCORE_STEP_FINAL_MATCH | good | 0 | 0 | 0 | 1 | score_evolution simulation_result matches final score. |
| SCORE_STEP_ORDER | good | 0 | 0 | 0 | 1 | Score evolution contains the expected ordered steps. |
| STARTER_PRESENT | good | 0 | 0 | 0 | 4 | Pitching staff includes a starter or opener when expected. |
| TARGET_SCORE_DRIFT | good | 0 | 0 | 0 | 1 | Final score does not drift too far from enhanced target. |
| TEAM_RECENT_RECORD | warning | 0 | 0 | 2 | 0 | team_recent_performance wins and win_pct agree with games_analyzed. |
| TOTAL_RUNS_MATCH | good | 0 | 0 | 0 | 1 | total_runs equals away + home runs. |
| WINNER_FIELD_MATCH | good | 0 | 0 | 0 | 1 | winner field agrees with the final score. |
20260429_DET@ATL
20260429_DET@ATL.json • 2026-04-29
Final simulation is structurally valid with warnings to review. Risk score: 100.
Action summary - what to fix first
| Level | Problem group / fix | Count | Teams | Example |
|---|---|---|---|---|
| WARN | Current payload is not synced to final box score The final simulation box score is treated as the source of truth. Sync game.predicted_performance finalized_stats/pitcher projections after scoring_simulation, or stop comparing that pre-simulation payload as final output. | 0C / 0E / 4W | ATL, DET | ATL current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=30; H: current=9, sim=6; HR: current=0, sim=1; BB: current=0, sim=3; SO: current=9, sim=8; HBP: current=0, sim=1). ATL current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=1, sim=7; BB: current=0, sim=3; SO: current=13, sim=12; HR: current=0, sim=1). |
| WARN | Pitch count summary differs by pitcher Pitch-count rows disagree with individual pitching box-score rows. Recalculate pitch_count_summary from the same final pitcher ledger used by box_score.pitching. | 0C / 0E / 2W | ATL | ATL pitch_count row for Joel Payamps differs from pitching box score: runs_allowed/R: summary=0, box=1. ATL pitch_count row for Robert Suarez differs from pitching box score: runs_allowed/R: summary=1, box=0. |
| WARN | Prediction target vs final simulation drift The inning simulation can vary from ML target, but large drift should be reviewed or explicitly documented as acceptable variance. | 0C / 0E / 2W | - | Final total runs 5 differs from low-score expected_total_runs 10.3 by more than 4. Final score drifted from enhanced target: target 3-6, final 1-4 (delta 4). |
| WARN | team_recent_performance record bug wins and win_pct do not agree. Either calculate wins correctly or derive win_pct directly as wins/games_analyzed. | 0C / 0E / 2W | ATL, DET | ATL wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. DET wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. |
Problems table - exact rows
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | ATL | CURRENT_FINALIZED_MATCH_BOX | ATL current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=30; H: current=9, sim=6; HR: current=0, sim=1; BB: current=0, sim=3; SO: current=9, sim=8; HBP: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | ATL | CURRENT_FINALIZED_MATCH_BOX | ATL current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=1, sim=7; BB: current=0, sim=3; SO: current=13, sim=12; HR: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | DET | CURRENT_FINALIZED_MATCH_BOX | DET current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=27, sim=34; H: current=8, sim=7; 2B: current=0, sim=2; HR: current=0, sim=1; BB: current=0, sim=3; SO: current=9, sim=12). | |||
| WARN | current_vs_final | cross-schema | DET | CURRENT_FINALIZED_MATCH_BOX | DET current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=6; R: current=3, sim=4; ER: current=3, sim=4; BB: current=0, sim=3; SO: current=15, sim=8; HR: current=0, sim=1). | |||
| WARN | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 5 differs from low-score expected_total_runs 10.3 by more than 4. | |||||
| WARN | pitch_count | simulation | ATL | Joel Payamps | PITCH_COUNT_PITCHER_MATCH | ATL pitch_count row for Joel Payamps differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | ATL | Robert Suarez | PITCH_COUNT_PITCHER_MATCH | ATL pitch_count row for Robert Suarez differs from pitching box score: runs_allowed/R: summary=1, box=0. | ||
| WARN | score | TARGET_SCORE_DRIFT | Final score drifted from enhanced target: target 3-6, final 1-4 (delta 4). | |||||
| WARN | team_recent_performance | current | ATL | TEAM_RECENT_RECORD | ATL wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | DET | TEAM_RECENT_RECORD | DET wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. |
All findings - complete audit trail
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | ATL | CURRENT_FINALIZED_MATCH_BOX | ATL current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=30; H: current=9, sim=6; HR: current=0, sim=1; BB: current=0, sim=3; SO: current=9, sim=8; HBP: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | ATL | CURRENT_FINALIZED_MATCH_BOX | ATL current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=1, sim=7; BB: current=0, sim=3; SO: current=13, sim=12; HR: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | DET | CURRENT_FINALIZED_MATCH_BOX | DET current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=27, sim=34; H: current=8, sim=7; 2B: current=0, sim=2; HR: current=0, sim=1; BB: current=0, sim=3; SO: current=9, sim=12). | |||
| WARN | current_vs_final | cross-schema | DET | CURRENT_FINALIZED_MATCH_BOX | DET current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=6; R: current=3, sim=4; ER: current=3, sim=4; BB: current=0, sim=3; SO: current=15, sim=8; HR: current=0, sim=1). | |||
| WARN | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 5 differs from low-score expected_total_runs 10.3 by more than 4. | |||||
| WARN | pitch_count | simulation | ATL | Joel Payamps | PITCH_COUNT_PITCHER_MATCH | ATL pitch_count row for Joel Payamps differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | ATL | Robert Suarez | PITCH_COUNT_PITCHER_MATCH | ATL pitch_count row for Robert Suarez differs from pitching box score: runs_allowed/R: summary=1, box=0. | ||
| WARN | score | TARGET_SCORE_DRIFT | Final score drifted from enhanced target: target 3-6, final 1-4 (delta 4). | |||||
| WARN | team_recent_performance | current | ATL | TEAM_RECENT_RECORD | ATL wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | DET | TEAM_RECENT_RECORD | DET wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| INFO | current_payload | current | ATL | CURRENT_PITCHER_DUPLICATION | ATL pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | DET | CURRENT_PITCHER_DUPLICATION | DET pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. | |||||
| PASS | batting | current | ATL | BATTING_REALISM | current:ATL hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | DET | BATTING_REALISM | current:DET hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | ATL | BATTING_REALISM | simulation:ATL hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | DET | BATTING_REALISM | simulation:DET hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | ATL | BATTING_TOTALS_SUM | current:ATL batting totals equal summed player lines. | |||
| PASS | batting_totals | current | DET | BATTING_TOTALS_SUM | current:DET batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | ATL | BATTING_TOTALS_SUM | simulation:ATL batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | DET | BATTING_TOTALS_SUM | simulation:DET batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | ATL | BAT_PITCH_BB_MATCH | simulation:ATL batting walks match DET pitching: 3. | |||
| PASS | boxscore_crosscheck | simulation | ATL | BAT_PITCH_HR_MATCH | simulation:ATL batting home runs match DET pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | ATL | BAT_PITCH_H_MATCH | simulation:ATL batting hits match DET pitching: 6. | |||
| PASS | boxscore_crosscheck | simulation | ATL | BAT_PITCH_SO_MATCH | simulation:ATL batting strikeouts match DET pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | ATL | PA_BF_MATCH | simulation:ATL PA=34 matches DET BF=34. | |||
| PASS | boxscore_crosscheck | simulation | ATL | RUNS_MATCH_FINAL | simulation:ATL runs match final score and opposing pitching runs: 4. | |||
| PASS | boxscore_crosscheck | simulation | DET | BAT_PITCH_BB_MATCH | simulation:DET batting walks match ATL pitching: 3. | |||
| PASS | boxscore_crosscheck | simulation | DET | BAT_PITCH_HR_MATCH | simulation:DET batting home runs match ATL pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | DET | BAT_PITCH_H_MATCH | simulation:DET batting hits match ATL pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | DET | BAT_PITCH_SO_MATCH | simulation:DET batting strikeouts match ATL pitching: 12. | |||
| PASS | boxscore_crosscheck | simulation | DET | PA_BF_MATCH | simulation:DET PA=37 matches ATL BF=37. | |||
| PASS | boxscore_crosscheck | simulation | DET | RUNS_MATCH_FINAL | simulation:DET runs match final score and opposing pitching runs: 1. | |||
| PASS | current_payload | current | ATL | CURRENT_LINEUP_SHAPE | ATL current lineup has 9 expected positions. | |||
| PASS | current_payload | current | ATL | CURRENT_MODEL_ZERO_FALLBACK | ATL current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | ATL | CURRENT_NAMES_PRESENT | ATL current hitter names are populated. | |||
| PASS | current_payload | current | DET | CURRENT_LINEUP_SHAPE | DET current lineup has 9 expected positions. | |||
| PASS | current_payload | current | DET | CURRENT_MODEL_ZERO_FALLBACK | DET current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | DET | CURRENT_NAMES_PRESENT | DET current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.320. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.680. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.680. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.303/0.707. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_OUTS | Inning 9 home marked not_played with empty stats. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: DET 7, ATL 6. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: DET 1 - ATL 4. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_DET@ATL. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: DET@ATL. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 146. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 167. | |||||
| PASS | pitch_count | simulation | ATL | PITCH_COUNT_TOTAL_MATCH | ATL pitch_count_summary total, row sum, and pitching total all match: 167. | |||
| PASS | pitch_count | simulation | DET | PITCH_COUNT_PITCHER_MATCH | DET pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | DET | PITCH_COUNT_TOTAL_MATCH | DET pitch_count_summary total, row sum, and pitching total all match: 146. | |||
| PASS | pitching | current | ATL | PITCHING_REALISM | current:ATL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | ATL | STARTER_PRESENT | current:ATL includes a starter/opener role. | |||
| PASS | pitching | current | DET | PITCHING_REALISM | current:DET pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | DET | STARTER_PRESENT | current:DET includes a starter/opener role. | |||
| PASS | pitching | simulation | ATL | PITCHING_REALISM | simulation:ATL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | ATL | STARTER_PRESENT | simulation:ATL includes a starter/opener role. | |||
| PASS | pitching | simulation | DET | PITCHING_REALISM | simulation:DET pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | DET | STARTER_PRESENT | simulation:DET includes a starter/opener role. | |||
| PASS | pitching_totals | current | ATL | PITCHING_TOTALS_SUM | current:ATL pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | ATL | PITCHING_TOTALS_SUM | current:ATL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | DET | PITCHING_TOTALS_SUM | current:DET pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | current | DET | PITCHING_TOTALS_SUM | current:DET pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | ATL | PITCHING_TOTALS_SUM | simulation:ATL pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | ATL | PITCHING_TOTALS_SUM | simulation:ATL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | DET | PITCHING_TOTALS_SUM | simulation:DET pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | simulation | DET | PITCHING_TOTALS_SUM | simulation:DET pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: DET 3 - 6 ATL. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: DET 1 - 4 ATL. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: ATL wins 4-1. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.680. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 5/10 (0.500). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 8/10 (0.800). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: ATL wins 4-1. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: ATL wins 1-4. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 1-4. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 5. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: ATL wins 4-1. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | ATL | RECENT_FORM_RANGE | ATL recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | DET | RECENT_FORM_RANGE | DET recent hitting/pitching rates are in valid ranges. |
Passed checks
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| PASS | batting | current | ATL | BATTING_REALISM | current:ATL hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | DET | BATTING_REALISM | current:DET hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | ATL | BATTING_REALISM | simulation:ATL hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | DET | BATTING_REALISM | simulation:DET hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | ATL | BATTING_TOTALS_SUM | current:ATL batting totals equal summed player lines. | |||
| PASS | batting_totals | current | DET | BATTING_TOTALS_SUM | current:DET batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | ATL | BATTING_TOTALS_SUM | simulation:ATL batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | DET | BATTING_TOTALS_SUM | simulation:DET batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | ATL | BAT_PITCH_BB_MATCH | simulation:ATL batting walks match DET pitching: 3. | |||
| PASS | boxscore_crosscheck | simulation | ATL | BAT_PITCH_HR_MATCH | simulation:ATL batting home runs match DET pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | ATL | BAT_PITCH_H_MATCH | simulation:ATL batting hits match DET pitching: 6. | |||
| PASS | boxscore_crosscheck | simulation | ATL | BAT_PITCH_SO_MATCH | simulation:ATL batting strikeouts match DET pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | ATL | PA_BF_MATCH | simulation:ATL PA=34 matches DET BF=34. | |||
| PASS | boxscore_crosscheck | simulation | ATL | RUNS_MATCH_FINAL | simulation:ATL runs match final score and opposing pitching runs: 4. | |||
| PASS | boxscore_crosscheck | simulation | DET | BAT_PITCH_BB_MATCH | simulation:DET batting walks match ATL pitching: 3. | |||
| PASS | boxscore_crosscheck | simulation | DET | BAT_PITCH_HR_MATCH | simulation:DET batting home runs match ATL pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | DET | BAT_PITCH_H_MATCH | simulation:DET batting hits match ATL pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | DET | BAT_PITCH_SO_MATCH | simulation:DET batting strikeouts match ATL pitching: 12. | |||
| PASS | boxscore_crosscheck | simulation | DET | PA_BF_MATCH | simulation:DET PA=37 matches ATL BF=37. | |||
| PASS | boxscore_crosscheck | simulation | DET | RUNS_MATCH_FINAL | simulation:DET runs match final score and opposing pitching runs: 1. | |||
| PASS | current_payload | current | ATL | CURRENT_LINEUP_SHAPE | ATL current lineup has 9 expected positions. | |||
| PASS | current_payload | current | ATL | CURRENT_MODEL_ZERO_FALLBACK | ATL current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | ATL | CURRENT_NAMES_PRESENT | ATL current hitter names are populated. | |||
| PASS | current_payload | current | DET | CURRENT_LINEUP_SHAPE | DET current lineup has 9 expected positions. | |||
| PASS | current_payload | current | DET | CURRENT_MODEL_ZERO_FALLBACK | DET current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | DET | CURRENT_NAMES_PRESENT | DET current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.320. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.680. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.680. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.303/0.707. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_OUTS | Inning 9 home marked not_played with empty stats. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: DET 7, ATL 6. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: DET 1 - ATL 4. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_DET@ATL. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: DET@ATL. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 146. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 167. | |||||
| PASS | pitch_count | simulation | ATL | PITCH_COUNT_TOTAL_MATCH | ATL pitch_count_summary total, row sum, and pitching total all match: 167. | |||
| PASS | pitch_count | simulation | DET | PITCH_COUNT_PITCHER_MATCH | DET pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | DET | PITCH_COUNT_TOTAL_MATCH | DET pitch_count_summary total, row sum, and pitching total all match: 146. | |||
| PASS | pitching | current | ATL | PITCHING_REALISM | current:ATL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | ATL | STARTER_PRESENT | current:ATL includes a starter/opener role. | |||
| PASS | pitching | current | DET | PITCHING_REALISM | current:DET pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | DET | STARTER_PRESENT | current:DET includes a starter/opener role. | |||
| PASS | pitching | simulation | ATL | PITCHING_REALISM | simulation:ATL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | ATL | STARTER_PRESENT | simulation:ATL includes a starter/opener role. | |||
| PASS | pitching | simulation | DET | PITCHING_REALISM | simulation:DET pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | DET | STARTER_PRESENT | simulation:DET includes a starter/opener role. | |||
| PASS | pitching_totals | current | ATL | PITCHING_TOTALS_SUM | current:ATL pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | ATL | PITCHING_TOTALS_SUM | current:ATL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | DET | PITCHING_TOTALS_SUM | current:DET pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | current | DET | PITCHING_TOTALS_SUM | current:DET pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | ATL | PITCHING_TOTALS_SUM | simulation:ATL pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | ATL | PITCHING_TOTALS_SUM | simulation:ATL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | DET | PITCHING_TOTALS_SUM | simulation:DET pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | simulation | DET | PITCHING_TOTALS_SUM | simulation:DET pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: DET 3 - 6 ATL. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: DET 1 - 4 ATL. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: ATL wins 4-1. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.680. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 5/10 (0.500). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 8/10 (0.800). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: ATL wins 4-1. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: ATL wins 1-4. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 1-4. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 5. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: ATL wins 4-1. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | ATL | RECENT_FORM_RANGE | ATL recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | DET | RECENT_FORM_RANGE | DET recent hitting/pitching rates are in valid ranges. |
Info/context findings
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| INFO | current_payload | current | ATL | CURRENT_PITCHER_DUPLICATION | ATL pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | DET | CURRENT_PITCHER_DUPLICATION | DET pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
Score evolution
| step | away_runs | home_runs | confidence | description |
|---|---|---|---|---|
| historical_ml | 4.409453868865967 | 4.552910804748535 | Base ML historical model prediction | |
| variance_applied | 4 | 4 | Random variance applied (0.9-1.1) | |
| enhanced_prediction | 3 | 6 | 0.793 | Enhanced ML with recent form, H2H, low-score analysis |
| capped_target | 3 | 6 | Capped at max 12 realistic runs | |
| simulation_result | 1 | 4 | Final inning-by-inning simulation result |
Inning-by-inning linescore
| team | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | R | H |
|---|---|---|---|---|---|---|---|---|---|---|---|
| DET | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 7 |
| ATL | 2 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 4 | 6 |
Team totals - current + final simulation
| src | team | type | AB | H | 2B | 3B | HR | RBI | R | BB | SO | SF | HBP | SB | CS | IP | ER | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | DET | batting | 27 | 8 | 0 | 0 | 0 | 1 | 1 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | DET | pitching | 3 | 0 | 3 | 0 | 15 | 8.0 | 3 | 0 | 0 | ||||||||
| current | ATL | batting | 29 | 9 | 0 | 0 | 0 | 4 | 4 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | ATL | pitching | 1 | 0 | 1 | 0 | 13 | 9.0 | 1 | 0 | 0 | ||||||||
| simulation | DET | batting | 34 | 7 | 2 | 0 | 1 | 1 | 1 | 3 | 12 | 0 | 0 | ||||||
| simulation | DET | pitching | 6 | 1 | 4 | 3 | 8 | 8.0 | 4 | 34 | 146 | ||||||||
| simulation | ATL | batting | 30 | 6 | 0 | 0 | 1 | 4 | 4 | 3 | 8 | 0 | 1 | ||||||
| simulation | ATL | pitching | 7 | 1 | 1 | 3 | 12 | 9.0 | 1 | 37 | 167 |
Batting lines - current + final simulation
| src | team | order | pos | name | AB | H | 2B | 3B | HR | R | RBI | BB | SO | HBP | AVG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | DET | CF | Wenceel Pérez | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 | |
| current | DET | RF | Kerry Carpenter | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | DET | 1B | Spencer Torkelson | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | DET | C | Dillon Dingler | 3 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0.333 | |
| current | DET | SS | Javier Báez | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | DET | 2B | Gleyber Torres | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | DET | 3B | Kevin McGonigle | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | DET | DH | Colt Keith | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | DET | LF | Riley Greene | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | ATL | 3B | Austin Riley | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | ATL | DH | Drake Baldwin | 4 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.250 | |
| current | ATL | 2B | Ozzie Albies | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.250 | |
| current | ATL | RF | Ronald Acuña Jr. | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | ATL | 1B | Matt Olson | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | ATL | C | Jonah Heim | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | ATL | SS | Mauricio Dubón | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | ATL | CF | Michael Harris II | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | ATL | LF | Eli White | 3 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0.333 | |
| simulation | DET | 1 | 3B | Kevin McGonigle | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.000 |
| simulation | DET | 2 | 2B | Gleyber Torres | 3 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0.333 |
| simulation | DET | 3 | DH | Colt Keith | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.333 |
| simulation | DET | 4 | LF | Riley Greene | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0.000 |
| simulation | DET | 5 | C | Dillon Dingler | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | DET | 6 | RF | Kerry Carpenter | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0.250 |
| simulation | DET | 7 | 1B | Spencer Torkelson | 4 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.500 |
| simulation | DET | 8 | CF | Wenceel Pérez | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.250 |
| simulation | DET | 9 | SS | Javier Báez | 4 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.250 |
| simulation | ATL | 1 | RF | Ronald Acuña Jr. | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 |
| simulation | ATL | 2 | DH | Drake Baldwin | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0.000 |
| simulation | ATL | 3 | 2B | Ozzie Albies | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0.333 |
| simulation | ATL | 4 | 1B | Matt Olson | 3 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0.000 |
| simulation | ATL | 5 | 3B | Austin Riley | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.250 |
| simulation | ATL | 6 | SS | Mauricio Dubón | 4 | 2 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.500 |
| simulation | ATL | 7 | CF | Michael Harris II | 4 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0.250 |
| simulation | ATL | 8 | C | Jonah Heim | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | ATL | 9 | LF | Eli White | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.000 |
Pitching lines - current + final simulation
| src | team | order | name | role | IP | H | R | ER | BB | SO | HR | BF | Pitches | sim_ERA | season_ERA | season_WHIP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | DET | 1 | Tarik Skubal | Starter | 4.1 | 1 | 1 | 1 | 0 | 8 | 0 | 0 | 0 | 2.08 | 2.80 | 1.02 |
| current | DET | 2 | Kenley Jansen | Middle Reliever | 1.1 | 1 | 1 | 1 | 0 | 3 | 0 | 0 | 0 | 6.75 | 4.22 | 1.56 |
| current | DET | 3 | Kyle Finnegan | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 0.72 | 1.28 |
| current | DET | 4 | Tyler Holton | Middle Reliever | 1.0 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 9.00 | 6.61 | 2.29 |
| current | DET | 5 | Drew Anderson | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 7.28 | 1.54 | |
| current | DET | 6 | Will Vest | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 7.35 | 1.73 | |
| current | ATL | 1 | JR Ritchie | Starter | 6.0 | 0 | 0 | 0 | 0 | 6 | 0 | 0 | 0 | 0.00 | 2.57 | 1.00 |
| current | ATL | 2 | Aaron Bummer | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 5.77 | 1.67 |
| current | ATL | 3 | Robert Suarez | Middle Reliever | 0.2 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 0.74 | 0.90 |
| current | ATL | 4 | Tyler Kinley | Middle Reliever | 0.2 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 1.46 | 1.06 |
| current | ATL | 5 | José Suarez | Middle Reliever | 0.1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 27.00 | 6.25 | 2.08 |
| current | ATL | 6 | Joel Payamps | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 7.03 | 1.41 | |
| simulation | DET | 1 | Tarik Skubal | Starter | 5.0 | 3 | 2 | 2 | 2 | 4 | 0 | 21 | 96 | 3.60 | 2.80 | 1.02 |
| simulation | DET | 2 | Kenley Jansen | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 9 | 0.00 | 4.22 | 1.56 |
| simulation | DET | 3 | Kyle Finnegan | Middle Reliever | 1.0 | 1 | 1 | 1 | 0 | 2 | 1 | 4 | 19 | 9.00 | 0.72 | 1.28 |
| simulation | DET | 4 | Will Vest | Middle Reliever | 1.0 | 2 | 1 | 1 | 1 | 2 | 0 | 6 | 22 | 9.00 | 7.35 | 1.73 |
| simulation | ATL | 1 | JR Ritchie | Starter | 5.0 | 2 | 0 | 0 | 2 | 6 | 0 | 19 | 89 | 0.00 | 2.57 | 1.00 |
| simulation | ATL | 2 | Robert Suarez | Middle Reliever | 1.0 | 1 | 0 | 0 | 0 | 2 | 1 | 4 | 15 | 0.00 | 0.74 | 0.90 |
| simulation | ATL | 3 | Tyler Kinley | Middle Reliever | 1.0 | 1 | 0 | 0 | 0 | 2 | 0 | 4 | 20 | 0.00 | 1.46 | 1.06 |
| simulation | ATL | 4 | Aaron Bummer | Middle Reliever | 1.0 | 1 | 0 | 0 | 1 | 1 | 0 | 5 | 21 | 0.00 | 5.77 | 1.67 |
| simulation | ATL | 5 | Joel Payamps | Middle Reliever | 1.0 | 2 | 1 | 1 | 0 | 1 | 0 | 5 | 22 | 9.00 | 7.03 | 1.41 |
Pitch count summary
| team | pitcher | role | IP | R | H | BB | SO | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|
| DET | Tarik Skubal | Starter | 5.0 | 2 | 3 | 2 | 4 | 21 | 96 |
| DET | Kenley Jansen | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 9 |
| DET | Kyle Finnegan | Middle Reliever | 1.0 | 1 | 1 | 0 | 2 | 4 | 19 |
| DET | Will Vest | Middle Reliever | 1.0 | 1 | 2 | 1 | 2 | 6 | 22 |
| ATL | JR Ritchie | Starter | 5.0 | 0 | 2 | 2 | 6 | 19 | 89 |
| ATL | Robert Suarez | Middle Reliever | 1.0 | 1 | 1 | 0 | 2 | 4 | 15 |
| ATL | Tyler Kinley | Middle Reliever | 1.0 | 0 | 1 | 0 | 2 | 4 | 20 |
| ATL | Aaron Bummer | Middle Reliever | 1.0 | 0 | 1 | 1 | 1 | 5 | 21 |
| ATL | Joel Payamps | Middle Reliever | 1.0 | 0 | 2 | 0 | 1 | 5 | 22 |
Audit rule catalog
| rule | status | critical | error | warning | pass | description |
|---|---|---|---|---|---|---|
| BATTING_REALISM | good | 0 | 0 | 0 | 4 | Player/team batting lines obey baseball constraints. |
| BATTING_TOTALS_SUM | good | 0 | 0 | 0 | 4 | Team batting totals equal the sum of player batting lines. |
| BAT_PITCH_BB_MATCH | good | 0 | 0 | 0 | 2 | Batting walks match opposing pitching walks allowed. |
| BAT_PITCH_HR_MATCH | good | 0 | 0 | 0 | 2 | Batting home runs match opposing pitching home runs allowed. |
| BAT_PITCH_H_MATCH | good | 0 | 0 | 0 | 2 | Batting hits match opposing pitching hits allowed. |
| BAT_PITCH_SO_MATCH | good | 0 | 0 | 0 | 2 | Batting strikeouts match opposing pitching strikeouts. |
| CONFIDENCE_RANGE | good | 0 | 0 | 0 | 5 | Confidence values are between 0 and 1. |
| CURRENT_FINALIZED_MATCH_BOX | warning | 0 | 0 | 4 | 0 | Current finalized player totals agree with final simulation box score. |
| CURRENT_LINEUP_SHAPE | good | 0 | 0 | 0 | 2 | Current predicted_performance contains a plausible 9-player lineup. |
| CURRENT_MODEL_ZERO_FALLBACK | good | 0 | 0 | 0 | 2 | Current model payload did not rely too heavily on all-zero model predictions. |
| CURRENT_NAMES_PRESENT | good | 0 | 0 | 0 | 2 | Current predicted_performance has usable player names. |
| CURRENT_PITCHER_DUPLICATION | info | 0 | 0 | 0 | 0 | Pitcher lists duplicated across current sections are detected and reconciled. |
| CURRENT_SCORE_MATCHES_SIM | good | 0 | 0 | 0 | 1 | game.predicted_runs matches scoring_simulation.final_score. |
| DATE_PARSE | good | 0 | 0 | 0 | 1 | Game date can be parsed as an ISO date. |
| FILENAME_GAME_ID_MATCH | good | 0 | 0 | 0 | 1 | Filename and game_id identify the same game. |
| FILENAME_TEAM_MATCH | good | 0 | 0 | 0 | 1 | Filename teams match the teams inside the JSON. |
| GAME_SUMMARY_MATCH | good | 0 | 0 | 0 | 1 | game_summary text agrees with final score. |
| H2H_DATA_LEAKAGE | good | 0 | 0 | 0 | 1 | Head-to-head history does not include same-day or future games in pregame mode. |
| INNINGS_COUNT | good | 0 | 0 | 0 | 1 | Inning count is valid for MLB. |
| INNING_OUTS | good | 0 | 0 | 0 | 1 | Each played half inning has valid outs. |
| INNING_PLAY_SUMS | good | 0 | 0 | 0 | 1 | Detailed plays agree with inning runs, hits, outs, and pitches. |
| INNING_SEQUENCE | good | 0 | 0 | 0 | 1 | Innings are sequential and unique. |
| INNING_TOTAL_HITS | good | 0 | 0 | 0 | 1 | Inning hits sum to batting team hits. |
| INNING_TOTAL_RUNS | good | 0 | 0 | 0 | 1 | Inning runs sum to final score. |
| LOW_SCORE_ANALYSIS | warning | 0 | 0 | 1 | 2 | Low-score probability factors are valid and directionally consistent. |
| PA_BF_MATCH | good | 0 | 0 | 0 | 2 | Team plate appearances match opposing batters faced. |
| PITCHING_REALISM | good | 0 | 0 | 0 | 4 | Pitcher/team pitching lines obey baseball constraints. |
| PITCHING_TOTALS_SUM | good | 0 | 0 | 0 | 8 | Team pitching totals equal the sum of pitcher lines. |
| PITCH_COUNT_PITCHER_MATCH | warning | 0 | 0 | 2 | 1 | Pitch count summary pitcher rows agree with pitching box score. |
| PITCH_COUNT_TOTAL_MATCH | good | 0 | 0 | 0 | 4 | Pitch count summary totals match team pitching totals. |
| PITCH_DETAIL_SANITY | good | 0 | 0 | 0 | 1 | Pitch-by-pitch details have plausible values. |
| PREDICTION_COMPARISON_MATCH | good | 0 | 0 | 0 | 3 | prediction_comparison scores agree with target/final result. |
| RECENT_FORM_RANGE | good | 0 | 0 | 0 | 4 | Recent-form metrics are within valid numeric ranges. |
| RECONCILIATION_PROPAGATION | info | 0 | 0 | 0 | 0 | When score_target_reconciliation is used, all final-facing sections are regenerated from the reconciled score. |
| REPORT_COMPLETE | good | 0 | 0 | 0 | 1 | Report includes every audit result in the all-findings table. |
| REPORT_CSV_EXPORT | not triggered | 0 | 0 | 0 | 0 | Optional CSV exports were written for summary and problem rows. |
| RUNS_MATCH_FINAL | good | 0 | 0 | 0 | 2 | Batting/pitching runs agree with final score. |
| SCHEMA_ROOTS_PRESENT | good | 0 | 0 | 0 | 1 | Expected JSON root sections exist and can be audited. |
| SCORE_NO_TIE | good | 0 | 0 | 0 | 1 | Final MLB score has a clear winner. |
| SCORE_STEP_FINAL_MATCH | good | 0 | 0 | 0 | 1 | score_evolution simulation_result matches final score. |
| SCORE_STEP_ORDER | good | 0 | 0 | 0 | 1 | Score evolution contains the expected ordered steps. |
| STARTER_PRESENT | good | 0 | 0 | 0 | 4 | Pitching staff includes a starter or opener when expected. |
| TARGET_SCORE_DRIFT | warning | 0 | 0 | 1 | 0 | Final score does not drift too far from enhanced target. |
| TEAM_RECENT_RECORD | warning | 0 | 0 | 2 | 0 | team_recent_performance wins and win_pct agree with games_analyzed. |
| TOTAL_RUNS_MATCH | good | 0 | 0 | 0 | 1 | total_runs equals away + home runs. |
| WINNER_FIELD_MATCH | good | 0 | 0 | 0 | 1 | winner field agrees with the final score. |
20260429_HOU@BAL
20260429_HOU@BAL.json • 2026-04-29
Final simulation is structurally valid with warnings to review. Risk score: 80.
Action summary - what to fix first
| Level | Problem group / fix | Count | Teams | Example |
|---|---|---|---|---|
| WARN | Current payload is not synced to final box score The final simulation box score is treated as the source of truth. Sync game.predicted_performance finalized_stats/pitcher projections after scoring_simulation, or stop comparing that pre-simulation payload as final output. | 0C / 0E / 4W | BAL, HOU | BAL current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=31; H: current=9, sim=7; 2B: current=0, sim=1; HR: current=0, sim=2; BB: current=0, sim=2; SO: current=9, sim=8). BAL current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=2, sim=5; BB: current=0, sim=3; SO: current=13, sim=6). |
| WARN | Prediction target vs final simulation drift The inning simulation can vary from ML target, but large drift should be reviewed or explicitly documented as acceptable variance. | 0C / 0E / 2W | - | Final total runs 5 differs from low-score expected_total_runs 10.4 by more than 4. Final score drifted from enhanced target: target 4-5, final 2-3 (delta 4). |
| WARN | team_recent_performance record bug wins and win_pct do not agree. Either calculate wins correctly or derive win_pct directly as wins/games_analyzed. | 0C / 0E / 2W | BAL, HOU | BAL wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. HOU wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. |
Problems table - exact rows
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | BAL | CURRENT_FINALIZED_MATCH_BOX | BAL current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=31; H: current=9, sim=7; 2B: current=0, sim=1; HR: current=0, sim=2; BB: current=0, sim=2; SO: current=9, sim=8). | |||
| WARN | current_vs_final | cross-schema | BAL | CURRENT_FINALIZED_MATCH_BOX | BAL current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=2, sim=5; BB: current=0, sim=3; SO: current=13, sim=6). | |||
| WARN | current_vs_final | cross-schema | HOU | CURRENT_FINALIZED_MATCH_BOX | HOU current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=32; H: current=8, sim=5; 2B: current=0, sim=2; BB: current=0, sim=3; SO: current=9, sim=6). | |||
| WARN | current_vs_final | cross-schema | HOU | CURRENT_FINALIZED_MATCH_BOX | HOU current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=7; BB: current=0, sim=2; SO: current=11, sim=8; HR: current=0, sim=2). | |||
| WARN | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 5 differs from low-score expected_total_runs 10.4 by more than 4. | |||||
| WARN | score | TARGET_SCORE_DRIFT | Final score drifted from enhanced target: target 4-5, final 2-3 (delta 4). | |||||
| WARN | team_recent_performance | current | BAL | TEAM_RECENT_RECORD | BAL wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | HOU | TEAM_RECENT_RECORD | HOU wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. |
All findings - complete audit trail
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | BAL | CURRENT_FINALIZED_MATCH_BOX | BAL current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=31; H: current=9, sim=7; 2B: current=0, sim=1; HR: current=0, sim=2; BB: current=0, sim=2; SO: current=9, sim=8). | |||
| WARN | current_vs_final | cross-schema | BAL | CURRENT_FINALIZED_MATCH_BOX | BAL current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=2, sim=5; BB: current=0, sim=3; SO: current=13, sim=6). | |||
| WARN | current_vs_final | cross-schema | HOU | CURRENT_FINALIZED_MATCH_BOX | HOU current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=32; H: current=8, sim=5; 2B: current=0, sim=2; BB: current=0, sim=3; SO: current=9, sim=6). | |||
| WARN | current_vs_final | cross-schema | HOU | CURRENT_FINALIZED_MATCH_BOX | HOU current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=7; BB: current=0, sim=2; SO: current=11, sim=8; HR: current=0, sim=2). | |||
| WARN | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 5 differs from low-score expected_total_runs 10.4 by more than 4. | |||||
| WARN | score | TARGET_SCORE_DRIFT | Final score drifted from enhanced target: target 4-5, final 2-3 (delta 4). | |||||
| WARN | team_recent_performance | current | BAL | TEAM_RECENT_RECORD | BAL wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | HOU | TEAM_RECENT_RECORD | HOU wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| INFO | current_payload | current | BAL | CURRENT_PITCHER_DUPLICATION | BAL pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | HOU | CURRENT_PITCHER_DUPLICATION | HOU pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. | |||||
| PASS | batting | current | BAL | BATTING_REALISM | current:BAL hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | HOU | BATTING_REALISM | current:HOU hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | BAL | BATTING_REALISM | simulation:BAL hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | HOU | BATTING_REALISM | simulation:HOU hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | BAL | BATTING_TOTALS_SUM | current:BAL batting totals equal summed player lines. | |||
| PASS | batting_totals | current | HOU | BATTING_TOTALS_SUM | current:HOU batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | BAL | BATTING_TOTALS_SUM | simulation:BAL batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | HOU | BATTING_TOTALS_SUM | simulation:HOU batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | BAL | BAT_PITCH_BB_MATCH | simulation:BAL batting walks match HOU pitching: 2. | |||
| PASS | boxscore_crosscheck | simulation | BAL | BAT_PITCH_HR_MATCH | simulation:BAL batting home runs match HOU pitching: 2. | |||
| PASS | boxscore_crosscheck | simulation | BAL | BAT_PITCH_H_MATCH | simulation:BAL batting hits match HOU pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | BAL | BAT_PITCH_SO_MATCH | simulation:BAL batting strikeouts match HOU pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | BAL | PA_BF_MATCH | simulation:BAL PA=33 matches HOU BF=33. | |||
| PASS | boxscore_crosscheck | simulation | BAL | RUNS_MATCH_FINAL | simulation:BAL runs match final score and opposing pitching runs: 3. | |||
| PASS | boxscore_crosscheck | simulation | HOU | BAT_PITCH_BB_MATCH | simulation:HOU batting walks match BAL pitching: 3. | |||
| PASS | boxscore_crosscheck | simulation | HOU | BAT_PITCH_HR_MATCH | simulation:HOU batting home runs match BAL pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | HOU | BAT_PITCH_H_MATCH | simulation:HOU batting hits match BAL pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | HOU | BAT_PITCH_SO_MATCH | simulation:HOU batting strikeouts match BAL pitching: 6. | |||
| PASS | boxscore_crosscheck | simulation | HOU | PA_BF_MATCH | simulation:HOU PA=35 matches BAL BF=35. | |||
| PASS | boxscore_crosscheck | simulation | HOU | RUNS_MATCH_FINAL | simulation:HOU runs match final score and opposing pitching runs: 2. | |||
| PASS | current_payload | current | BAL | CURRENT_LINEUP_SHAPE | BAL current lineup has 9 expected positions. | |||
| PASS | current_payload | current | BAL | CURRENT_MODEL_ZERO_FALLBACK | BAL current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | BAL | CURRENT_NAMES_PRESENT | BAL current hitter names are populated. | |||
| PASS | current_payload | current | HOU | CURRENT_LINEUP_SHAPE | HOU current lineup has 9 expected positions. | |||
| PASS | current_payload | current | HOU | CURRENT_MODEL_ZERO_FALLBACK | HOU current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | HOU | CURRENT_NAMES_PRESENT | HOU current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.451. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.549. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.549. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.276/0.652. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_OUTS | Inning 9 home marked not_played with empty stats. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: HOU 5, BAL 7. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: HOU 2 - BAL 3. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_HOU@BAL. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: HOU@BAL. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 139. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 143. | |||||
| PASS | pitch_count | simulation | BAL | PITCH_COUNT_PITCHER_MATCH | BAL pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | BAL | PITCH_COUNT_TOTAL_MATCH | BAL pitch_count_summary total, row sum, and pitching total all match: 143. | |||
| PASS | pitch_count | simulation | HOU | PITCH_COUNT_PITCHER_MATCH | HOU pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | HOU | PITCH_COUNT_TOTAL_MATCH | HOU pitch_count_summary total, row sum, and pitching total all match: 139. | |||
| PASS | pitching | current | BAL | PITCHING_REALISM | current:BAL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | BAL | STARTER_PRESENT | current:BAL includes a starter/opener role. | |||
| PASS | pitching | current | HOU | PITCHING_REALISM | current:HOU pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | HOU | STARTER_PRESENT | current:HOU includes a starter/opener role. | |||
| PASS | pitching | simulation | BAL | PITCHING_REALISM | simulation:BAL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | BAL | STARTER_PRESENT | simulation:BAL includes a starter/opener role. | |||
| PASS | pitching | simulation | HOU | PITCHING_REALISM | simulation:HOU pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | HOU | STARTER_PRESENT | simulation:HOU includes a starter/opener role. | |||
| PASS | pitching_totals | current | BAL | PITCHING_TOTALS_SUM | current:BAL pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | BAL | PITCHING_TOTALS_SUM | current:BAL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | HOU | PITCHING_TOTALS_SUM | current:HOU pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | current | HOU | PITCHING_TOTALS_SUM | current:HOU pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | BAL | PITCHING_TOTALS_SUM | simulation:BAL pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | BAL | PITCHING_TOTALS_SUM | simulation:BAL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | HOU | PITCHING_TOTALS_SUM | simulation:HOU pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | simulation | HOU | PITCHING_TOTALS_SUM | simulation:HOU pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: HOU 4 - 5 BAL. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: HOU 2 - 3 BAL. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: BAL wins 3-2. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.549. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 3/10 (0.300). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 5/10 (0.500). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: BAL wins 3-2. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: BAL wins 2-3. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 2-3. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 5. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: BAL wins 3-2. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | BAL | RECENT_FORM_RANGE | BAL recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | HOU | RECENT_FORM_RANGE | HOU recent hitting/pitching rates are in valid ranges. |
Passed checks
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| PASS | batting | current | BAL | BATTING_REALISM | current:BAL hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | HOU | BATTING_REALISM | current:HOU hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | BAL | BATTING_REALISM | simulation:BAL hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | HOU | BATTING_REALISM | simulation:HOU hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | BAL | BATTING_TOTALS_SUM | current:BAL batting totals equal summed player lines. | |||
| PASS | batting_totals | current | HOU | BATTING_TOTALS_SUM | current:HOU batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | BAL | BATTING_TOTALS_SUM | simulation:BAL batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | HOU | BATTING_TOTALS_SUM | simulation:HOU batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | BAL | BAT_PITCH_BB_MATCH | simulation:BAL batting walks match HOU pitching: 2. | |||
| PASS | boxscore_crosscheck | simulation | BAL | BAT_PITCH_HR_MATCH | simulation:BAL batting home runs match HOU pitching: 2. | |||
| PASS | boxscore_crosscheck | simulation | BAL | BAT_PITCH_H_MATCH | simulation:BAL batting hits match HOU pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | BAL | BAT_PITCH_SO_MATCH | simulation:BAL batting strikeouts match HOU pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | BAL | PA_BF_MATCH | simulation:BAL PA=33 matches HOU BF=33. | |||
| PASS | boxscore_crosscheck | simulation | BAL | RUNS_MATCH_FINAL | simulation:BAL runs match final score and opposing pitching runs: 3. | |||
| PASS | boxscore_crosscheck | simulation | HOU | BAT_PITCH_BB_MATCH | simulation:HOU batting walks match BAL pitching: 3. | |||
| PASS | boxscore_crosscheck | simulation | HOU | BAT_PITCH_HR_MATCH | simulation:HOU batting home runs match BAL pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | HOU | BAT_PITCH_H_MATCH | simulation:HOU batting hits match BAL pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | HOU | BAT_PITCH_SO_MATCH | simulation:HOU batting strikeouts match BAL pitching: 6. | |||
| PASS | boxscore_crosscheck | simulation | HOU | PA_BF_MATCH | simulation:HOU PA=35 matches BAL BF=35. | |||
| PASS | boxscore_crosscheck | simulation | HOU | RUNS_MATCH_FINAL | simulation:HOU runs match final score and opposing pitching runs: 2. | |||
| PASS | current_payload | current | BAL | CURRENT_LINEUP_SHAPE | BAL current lineup has 9 expected positions. | |||
| PASS | current_payload | current | BAL | CURRENT_MODEL_ZERO_FALLBACK | BAL current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | BAL | CURRENT_NAMES_PRESENT | BAL current hitter names are populated. | |||
| PASS | current_payload | current | HOU | CURRENT_LINEUP_SHAPE | HOU current lineup has 9 expected positions. | |||
| PASS | current_payload | current | HOU | CURRENT_MODEL_ZERO_FALLBACK | HOU current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | HOU | CURRENT_NAMES_PRESENT | HOU current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.451. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.549. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.549. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.276/0.652. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_OUTS | Inning 9 home marked not_played with empty stats. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: HOU 5, BAL 7. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: HOU 2 - BAL 3. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_HOU@BAL. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: HOU@BAL. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 139. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 143. | |||||
| PASS | pitch_count | simulation | BAL | PITCH_COUNT_PITCHER_MATCH | BAL pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | BAL | PITCH_COUNT_TOTAL_MATCH | BAL pitch_count_summary total, row sum, and pitching total all match: 143. | |||
| PASS | pitch_count | simulation | HOU | PITCH_COUNT_PITCHER_MATCH | HOU pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | HOU | PITCH_COUNT_TOTAL_MATCH | HOU pitch_count_summary total, row sum, and pitching total all match: 139. | |||
| PASS | pitching | current | BAL | PITCHING_REALISM | current:BAL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | BAL | STARTER_PRESENT | current:BAL includes a starter/opener role. | |||
| PASS | pitching | current | HOU | PITCHING_REALISM | current:HOU pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | HOU | STARTER_PRESENT | current:HOU includes a starter/opener role. | |||
| PASS | pitching | simulation | BAL | PITCHING_REALISM | simulation:BAL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | BAL | STARTER_PRESENT | simulation:BAL includes a starter/opener role. | |||
| PASS | pitching | simulation | HOU | PITCHING_REALISM | simulation:HOU pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | HOU | STARTER_PRESENT | simulation:HOU includes a starter/opener role. | |||
| PASS | pitching_totals | current | BAL | PITCHING_TOTALS_SUM | current:BAL pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | BAL | PITCHING_TOTALS_SUM | current:BAL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | HOU | PITCHING_TOTALS_SUM | current:HOU pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | current | HOU | PITCHING_TOTALS_SUM | current:HOU pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | BAL | PITCHING_TOTALS_SUM | simulation:BAL pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | BAL | PITCHING_TOTALS_SUM | simulation:BAL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | HOU | PITCHING_TOTALS_SUM | simulation:HOU pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | simulation | HOU | PITCHING_TOTALS_SUM | simulation:HOU pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: HOU 4 - 5 BAL. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: HOU 2 - 3 BAL. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: BAL wins 3-2. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.549. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 3/10 (0.300). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 5/10 (0.500). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: BAL wins 3-2. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: BAL wins 2-3. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 2-3. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 5. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: BAL wins 3-2. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | BAL | RECENT_FORM_RANGE | BAL recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | HOU | RECENT_FORM_RANGE | HOU recent hitting/pitching rates are in valid ranges. |
Info/context findings
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| INFO | current_payload | current | BAL | CURRENT_PITCHER_DUPLICATION | BAL pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | HOU | CURRENT_PITCHER_DUPLICATION | HOU pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
Score evolution
| step | away_runs | home_runs | confidence | description |
|---|---|---|---|---|
| historical_ml | 3.6474459171295166 | 2.8953418731689453 | Base ML historical model prediction | |
| variance_applied | 3 | 3 | Random variance applied (0.9-1.1) | |
| enhanced_prediction | 4 | 5 | 0.578 | Enhanced ML with recent form, H2H, low-score analysis |
| capped_target | 4 | 5 | Capped at max 12 realistic runs | |
| simulation_result | 2 | 3 | Final inning-by-inning simulation result |
Inning-by-inning linescore
| team | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | R | H |
|---|---|---|---|---|---|---|---|---|---|---|---|
| HOU | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 2 | 5 |
| BAL | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 2 | 0 | 3 | 7 |
Team totals - current + final simulation
| src | team | type | AB | H | 2B | 3B | HR | RBI | R | BB | SO | SF | HBP | SB | CS | IP | ER | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | HOU | batting | 29 | 8 | 0 | 0 | 0 | 2 | 2 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | HOU | pitching | 3 | 0 | 3 | 0 | 11 | 8.0 | 3 | 0 | 0 | ||||||||
| current | BAL | batting | 28 | 9 | 0 | 0 | 0 | 3 | 3 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | BAL | pitching | 2 | 0 | 2 | 0 | 13 | 9.0 | 2 | 0 | 0 | ||||||||
| simulation | HOU | batting | 32 | 5 | 2 | 0 | 0 | 2 | 2 | 3 | 6 | 0 | 0 | ||||||
| simulation | HOU | pitching | 7 | 2 | 3 | 2 | 8 | 8.0 | 3 | 33 | 139 | ||||||||
| simulation | BAL | batting | 31 | 7 | 1 | 0 | 2 | 3 | 3 | 2 | 8 | 0 | 0 | ||||||
| simulation | BAL | pitching | 5 | 0 | 2 | 3 | 6 | 9.0 | 2 | 35 | 143 |
Batting lines - current + final simulation
| src | team | order | pos | name | AB | H | 2B | 3B | HR | R | RBI | BB | SO | HBP | AVG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | HOU | 1B | Christian Walker | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | HOU | 2B | Jose Altuve | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 | |
| current | HOU | 3B | Isaac Paredes | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | HOU | DH | Yordan Alvarez | 3 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0.333 | |
| current | HOU | CF | Brice Matthews | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | HOU | C | Yainer Diaz | 4 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0.250 | |
| current | HOU | SS | Carlos Correa | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | HOU | LF | Dustin Harris | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 | |
| current | HOU | RF | Cam Smith | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | BAL | LF | Taylor Ward | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | BAL | CF | Leody Taveras | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | BAL | C | Adley Rutschman | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | BAL | 1B | Pete Alonso | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | BAL | SS | Gunnar Henderson | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.250 | |
| current | BAL | DH | Samuel Basallo | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | BAL | RF | Dylan Beavers | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | BAL | 3B | Coby Mayo | 3 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0.333 | |
| current | BAL | 2B | Jeremiah Jackson | 3 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0.333 | |
| simulation | HOU | 1 | SS | Carlos Correa | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.000 |
| simulation | HOU | 2 | DH | Yordan Alvarez | 4 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.250 |
| simulation | HOU | 3 | 3B | Isaac Paredes | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 |
| simulation | HOU | 4 | 2B | Jose Altuve | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.250 |
| simulation | HOU | 5 | 1B | Christian Walker | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.000 |
| simulation | HOU | 6 | RF | Cam Smith | 4 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.250 |
| simulation | HOU | 7 | LF | Dustin Harris | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0.000 |
| simulation | HOU | 8 | C | Yainer Diaz | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | HOU | 9 | CF | Brice Matthews | 3 | 1 | 1 | 0 | 0 | 1 | 2 | 0 | 1 | 0 | 0.333 |
| simulation | BAL | 1 | SS | Gunnar Henderson | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.000 |
| simulation | BAL | 2 | LF | Taylor Ward | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0.000 |
| simulation | BAL | 3 | C | Adley Rutschman | 4 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0.250 |
| simulation | BAL | 4 | 1B | Pete Alonso | 4 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.500 |
| simulation | BAL | 5 | RF | Dylan Beavers | 4 | 1 | 0 | 0 | 1 | 1 | 2 | 0 | 0 | 0 | 0.250 |
| simulation | BAL | 6 | DH | Samuel Basallo | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0.000 |
| simulation | BAL | 7 | CF | Leody Taveras | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 |
| simulation | BAL | 8 | 3B | Coby Mayo | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0.500 |
| simulation | BAL | 9 | 2B | Jeremiah Jackson | 3 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 |
Pitching lines - current + final simulation
| src | team | order | name | role | IP | H | R | ER | BB | SO | HR | BF | Pitches | sim_ERA | season_ERA | season_WHIP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | HOU | 1 | Peter Lambert | Starter | 6.1 | 1 | 1 | 1 | 0 | 8 | 0 | 0 | 0 | 1.42 | 3.27 | 1.27 |
| current | HOU | 2 | Kai-Wei Teng | Middle Reliever | 1.1 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 6.75 | 3.16 | 1.17 |
| current | HOU | 3 | Steven Okert | Middle Reliever | 0.1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 27.00 | 3.50 | 1.36 |
| current | HOU | 4 | Bryan Abreu | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 14.59 | 2.97 | |
| current | HOU | 5 | Bryan King | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4.59 | 1.63 | |
| current | HOU | 6 | Enyel De Los Santos | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6.70 | 1.60 | |
| current | BAL | 1 | Chris Bassitt | Starter | 5.1 | 1 | 1 | 1 | 0 | 5 | 0 | 0 | 0 | 1.69 | 7.06 | 2.16 |
| current | BAL | 2 | Anthony Nunez | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0.00 | 2.69 | 0.90 |
| current | BAL | 3 | Rico Garcia | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 0.73 | 0.40 |
| current | BAL | 4 | Yennier Cano | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 2.31 | 0.77 |
| current | BAL | 5 | Tyler Wells | Middle Reliever | 0.1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 27.00 | 3.70 | 1.23 |
| current | BAL | 6 | Grant Wolfram | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3.75 | 1.67 | |
| simulation | HOU | 1 | Peter Lambert | Starter | 5.0 | 3 | 1 | 1 | 2 | 6 | 1 | 20 | 90 | 1.80 | 3.27 | 1.27 |
| simulation | HOU | 2 | Enyel De Los Santos | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 7 | 0.00 | 6.70 | 1.60 |
| simulation | HOU | 3 | Bryan King | Middle Reliever | 1.0 | 2 | 0 | 0 | 0 | 2 | 0 | 5 | 22 | 0.00 | 4.59 | 1.63 |
| simulation | HOU | 4 | Bryan Abreu | Middle Reliever | 1.0 | 2 | 2 | 2 | 0 | 0 | 1 | 5 | 20 | 18.00 | 14.59 | 2.97 |
| simulation | BAL | 1 | Chris Bassitt | Starter | 5.0 | 3 | 2 | 2 | 2 | 4 | 0 | 20 | 81 | 3.60 | 7.06 | 2.16 |
| simulation | BAL | 2 | Rico Garcia | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 12 | 0.00 | 0.73 | 0.40 |
| simulation | BAL | 3 | Anthony Nunez | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 11 | 0.00 | 2.69 | 0.90 |
| simulation | BAL | 4 | Yennier Cano | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 10 | 0.00 | 2.31 | 0.77 |
| simulation | BAL | 5 | Grant Wolfram | Middle Reliever | 1.0 | 2 | 0 | 0 | 1 | 1 | 0 | 6 | 29 | 0.00 | 3.75 | 1.67 |
Pitch count summary
| team | pitcher | role | IP | R | H | BB | SO | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|
| HOU | Peter Lambert | Starter | 5.0 | 1 | 3 | 2 | 6 | 20 | 90 |
| HOU | Enyel De Los Santos | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 7 |
| HOU | Bryan King | Middle Reliever | 1.0 | 0 | 2 | 0 | 2 | 5 | 22 |
| HOU | Bryan Abreu | Middle Reliever | 1.0 | 2 | 2 | 0 | 0 | 5 | 20 |
| BAL | Chris Bassitt | Starter | 5.0 | 2 | 3 | 2 | 4 | 20 | 81 |
| BAL | Rico Garcia | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 12 |
| BAL | Anthony Nunez | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 11 |
| BAL | Yennier Cano | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 10 |
| BAL | Grant Wolfram | Middle Reliever | 1.0 | 0 | 2 | 1 | 1 | 6 | 29 |
Audit rule catalog
| rule | status | critical | error | warning | pass | description |
|---|---|---|---|---|---|---|
| BATTING_REALISM | good | 0 | 0 | 0 | 4 | Player/team batting lines obey baseball constraints. |
| BATTING_TOTALS_SUM | good | 0 | 0 | 0 | 4 | Team batting totals equal the sum of player batting lines. |
| BAT_PITCH_BB_MATCH | good | 0 | 0 | 0 | 2 | Batting walks match opposing pitching walks allowed. |
| BAT_PITCH_HR_MATCH | good | 0 | 0 | 0 | 2 | Batting home runs match opposing pitching home runs allowed. |
| BAT_PITCH_H_MATCH | good | 0 | 0 | 0 | 2 | Batting hits match opposing pitching hits allowed. |
| BAT_PITCH_SO_MATCH | good | 0 | 0 | 0 | 2 | Batting strikeouts match opposing pitching strikeouts. |
| CONFIDENCE_RANGE | good | 0 | 0 | 0 | 5 | Confidence values are between 0 and 1. |
| CURRENT_FINALIZED_MATCH_BOX | warning | 0 | 0 | 4 | 0 | Current finalized player totals agree with final simulation box score. |
| CURRENT_LINEUP_SHAPE | good | 0 | 0 | 0 | 2 | Current predicted_performance contains a plausible 9-player lineup. |
| CURRENT_MODEL_ZERO_FALLBACK | good | 0 | 0 | 0 | 2 | Current model payload did not rely too heavily on all-zero model predictions. |
| CURRENT_NAMES_PRESENT | good | 0 | 0 | 0 | 2 | Current predicted_performance has usable player names. |
| CURRENT_PITCHER_DUPLICATION | info | 0 | 0 | 0 | 0 | Pitcher lists duplicated across current sections are detected and reconciled. |
| CURRENT_SCORE_MATCHES_SIM | good | 0 | 0 | 0 | 1 | game.predicted_runs matches scoring_simulation.final_score. |
| DATE_PARSE | good | 0 | 0 | 0 | 1 | Game date can be parsed as an ISO date. |
| FILENAME_GAME_ID_MATCH | good | 0 | 0 | 0 | 1 | Filename and game_id identify the same game. |
| FILENAME_TEAM_MATCH | good | 0 | 0 | 0 | 1 | Filename teams match the teams inside the JSON. |
| GAME_SUMMARY_MATCH | good | 0 | 0 | 0 | 1 | game_summary text agrees with final score. |
| H2H_DATA_LEAKAGE | good | 0 | 0 | 0 | 1 | Head-to-head history does not include same-day or future games in pregame mode. |
| INNINGS_COUNT | good | 0 | 0 | 0 | 1 | Inning count is valid for MLB. |
| INNING_OUTS | good | 0 | 0 | 0 | 1 | Each played half inning has valid outs. |
| INNING_PLAY_SUMS | good | 0 | 0 | 0 | 1 | Detailed plays agree with inning runs, hits, outs, and pitches. |
| INNING_SEQUENCE | good | 0 | 0 | 0 | 1 | Innings are sequential and unique. |
| INNING_TOTAL_HITS | good | 0 | 0 | 0 | 1 | Inning hits sum to batting team hits. |
| INNING_TOTAL_RUNS | good | 0 | 0 | 0 | 1 | Inning runs sum to final score. |
| LOW_SCORE_ANALYSIS | warning | 0 | 0 | 1 | 2 | Low-score probability factors are valid and directionally consistent. |
| PA_BF_MATCH | good | 0 | 0 | 0 | 2 | Team plate appearances match opposing batters faced. |
| PITCHING_REALISM | good | 0 | 0 | 0 | 4 | Pitcher/team pitching lines obey baseball constraints. |
| PITCHING_TOTALS_SUM | good | 0 | 0 | 0 | 8 | Team pitching totals equal the sum of pitcher lines. |
| PITCH_COUNT_PITCHER_MATCH | good | 0 | 0 | 0 | 2 | Pitch count summary pitcher rows agree with pitching box score. |
| PITCH_COUNT_TOTAL_MATCH | good | 0 | 0 | 0 | 4 | Pitch count summary totals match team pitching totals. |
| PITCH_DETAIL_SANITY | good | 0 | 0 | 0 | 1 | Pitch-by-pitch details have plausible values. |
| PREDICTION_COMPARISON_MATCH | good | 0 | 0 | 0 | 3 | prediction_comparison scores agree with target/final result. |
| RECENT_FORM_RANGE | good | 0 | 0 | 0 | 4 | Recent-form metrics are within valid numeric ranges. |
| RECONCILIATION_PROPAGATION | info | 0 | 0 | 0 | 0 | When score_target_reconciliation is used, all final-facing sections are regenerated from the reconciled score. |
| REPORT_COMPLETE | good | 0 | 0 | 0 | 1 | Report includes every audit result in the all-findings table. |
| REPORT_CSV_EXPORT | not triggered | 0 | 0 | 0 | 0 | Optional CSV exports were written for summary and problem rows. |
| RUNS_MATCH_FINAL | good | 0 | 0 | 0 | 2 | Batting/pitching runs agree with final score. |
| SCHEMA_ROOTS_PRESENT | good | 0 | 0 | 0 | 1 | Expected JSON root sections exist and can be audited. |
| SCORE_NO_TIE | good | 0 | 0 | 0 | 1 | Final MLB score has a clear winner. |
| SCORE_STEP_FINAL_MATCH | good | 0 | 0 | 0 | 1 | score_evolution simulation_result matches final score. |
| SCORE_STEP_ORDER | good | 0 | 0 | 0 | 1 | Score evolution contains the expected ordered steps. |
| STARTER_PRESENT | good | 0 | 0 | 0 | 4 | Pitching staff includes a starter or opener when expected. |
| TARGET_SCORE_DRIFT | warning | 0 | 0 | 1 | 0 | Final score does not drift too far from enhanced target. |
| TEAM_RECENT_RECORD | warning | 0 | 0 | 2 | 0 | team_recent_performance wins and win_pct agree with games_analyzed. |
| TOTAL_RUNS_MATCH | good | 0 | 0 | 0 | 1 | total_runs equals away + home runs. |
| WINNER_FIELD_MATCH | good | 0 | 0 | 0 | 1 | winner field agrees with the final score. |
20260429_KC@OAK
20260429_KC@OAK.json • 2026-04-29
Final simulation is structurally valid with warnings to review. Risk score: 120.
Action summary - what to fix first
| Level | Problem group / fix | Count | Teams | Example |
|---|---|---|---|---|
| WARN | Current payload is not synced to final box score The final simulation box score is treated as the source of truth. Sync game.predicted_performance finalized_stats/pitcher projections after scoring_simulation, or stop comparing that pre-simulation payload as final output. | 0C / 0E / 4W | KC, OAK | KC current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=35; 2B: current=0, sim=2; HR: current=0, sim=1; RBI: current=3, sim=4; BB: current=0, sim=5; SO: current=9, sim=11; SF: current=0, sim=1; HBP: current=0, sim=1). KC current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=2, sim=5; BB: current=0, sim=4; SO: current=14, sim=10; HR: current=0, sim=1). |
| WARN | Pitch count summary differs by pitcher Pitch-count rows disagree with individual pitching box-score rows. Recalculate pitch_count_summary from the same final pitcher ledger used by box_score.pitching. | 0C / 0E / 3W | OAK | OAK pitch_count row for Hogan Harris differs from pitching box score: runs_allowed/R: summary=0, box=1. OAK pitch_count row for Joel Kuhnel differs from pitching box score: runs_allowed/R: summary=2, box=0. |
| WARN | Prediction target vs final simulation drift The inning simulation can vary from ML target, but large drift should be reviewed or explicitly documented as acceptable variance. | 0C / 0E / 2W | - | Final total runs 6 differs from low-score expected_total_runs 10.3 by more than 4. Final score drifted from enhanced target: target 6-4, final 4-2 (delta 4). |
| WARN | team_recent_performance record bug wins and win_pct do not agree. Either calculate wins correctly or derive win_pct directly as wins/games_analyzed. | 0C / 0E / 2W | KC, OAK | KC wins=0 over games_analyzed=28 implies win_pct=0.000, but JSON has 0.500. OAK wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. |
| WARN | Data Leakage Review the listed finding and decide whether to fix the data or downgrade the rule. | 0C / 0E / 1W | - | Head-to-head contains same-day/future game rows that should not be available before first pitch: 2026-04-29 KC@OAK 4-1 |
Problems table - exact rows
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | KC | CURRENT_FINALIZED_MATCH_BOX | KC current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=35; 2B: current=0, sim=2; HR: current=0, sim=1; RBI: current=3, sim=4; BB: current=0, sim=5; SO: current=9, sim=11; SF: current=0, sim=1; HBP: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | KC | CURRENT_FINALIZED_MATCH_BOX | KC current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=2, sim=5; BB: current=0, sim=4; SO: current=14, sim=10; HR: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | OAK | CURRENT_FINALIZED_MATCH_BOX | OAK current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=32; H: current=8, sim=5; HR: current=0, sim=1; BB: current=2, sim=4; SO: current=9, sim=10). | |||
| WARN | current_vs_final | cross-schema | OAK | CURRENT_FINALIZED_MATCH_BOX | OAK current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=9; R: current=3, sim=4; ER: current=3, sim=4; BB: current=0, sim=5; SO: current=9, sim=11; HR: current=0, sim=1). | |||
| WARN | data_leakage | H2H_DATA_LEAKAGE | Head-to-head contains same-day/future game rows that should not be available before first pitch: 2026-04-29 KC@OAK 4-1 | Only H2H rows dated before the prediction game date in pregame mode. | ||||
| WARN | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 6 differs from low-score expected_total_runs 10.3 by more than 4. | |||||
| WARN | pitch_count | simulation | OAK | Hogan Harris | PITCH_COUNT_PITCHER_MATCH | OAK pitch_count row for Hogan Harris differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | OAK | Joel Kuhnel | PITCH_COUNT_PITCHER_MATCH | OAK pitch_count row for Joel Kuhnel differs from pitching box score: runs_allowed/R: summary=2, box=0. | ||
| WARN | pitch_count | simulation | OAK | Mark Leiter Jr. | PITCH_COUNT_PITCHER_MATCH | OAK pitch_count row for Mark Leiter Jr. differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | score | TARGET_SCORE_DRIFT | Final score drifted from enhanced target: target 6-4, final 4-2 (delta 4). | |||||
| WARN | team_recent_performance | current | KC | TEAM_RECENT_RECORD | KC wins=0 over games_analyzed=28 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | OAK | TEAM_RECENT_RECORD | OAK wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. |
All findings - complete audit trail
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | KC | CURRENT_FINALIZED_MATCH_BOX | KC current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=35; 2B: current=0, sim=2; HR: current=0, sim=1; RBI: current=3, sim=4; BB: current=0, sim=5; SO: current=9, sim=11; SF: current=0, sim=1; HBP: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | KC | CURRENT_FINALIZED_MATCH_BOX | KC current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=2, sim=5; BB: current=0, sim=4; SO: current=14, sim=10; HR: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | OAK | CURRENT_FINALIZED_MATCH_BOX | OAK current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=32; H: current=8, sim=5; HR: current=0, sim=1; BB: current=2, sim=4; SO: current=9, sim=10). | |||
| WARN | current_vs_final | cross-schema | OAK | CURRENT_FINALIZED_MATCH_BOX | OAK current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=9; R: current=3, sim=4; ER: current=3, sim=4; BB: current=0, sim=5; SO: current=9, sim=11; HR: current=0, sim=1). | |||
| WARN | data_leakage | H2H_DATA_LEAKAGE | Head-to-head contains same-day/future game rows that should not be available before first pitch: 2026-04-29 KC@OAK 4-1 | Only H2H rows dated before the prediction game date in pregame mode. | ||||
| WARN | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 6 differs from low-score expected_total_runs 10.3 by more than 4. | |||||
| WARN | pitch_count | simulation | OAK | Hogan Harris | PITCH_COUNT_PITCHER_MATCH | OAK pitch_count row for Hogan Harris differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | OAK | Joel Kuhnel | PITCH_COUNT_PITCHER_MATCH | OAK pitch_count row for Joel Kuhnel differs from pitching box score: runs_allowed/R: summary=2, box=0. | ||
| WARN | pitch_count | simulation | OAK | Mark Leiter Jr. | PITCH_COUNT_PITCHER_MATCH | OAK pitch_count row for Mark Leiter Jr. differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | score | TARGET_SCORE_DRIFT | Final score drifted from enhanced target: target 6-4, final 4-2 (delta 4). | |||||
| WARN | team_recent_performance | current | KC | TEAM_RECENT_RECORD | KC wins=0 over games_analyzed=28 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | OAK | TEAM_RECENT_RECORD | OAK wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. | |||
| INFO | current_payload | current | KC | CURRENT_PITCHER_DUPLICATION | KC pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | OAK | CURRENT_PITCHER_DUPLICATION | OAK pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. | |||||
| PASS | batting | current | KC | BATTING_REALISM | current:KC hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | OAK | BATTING_REALISM | current:OAK hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | KC | BATTING_REALISM | simulation:KC hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | OAK | BATTING_REALISM | simulation:OAK hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | KC | BATTING_TOTALS_SUM | current:KC batting totals equal summed player lines. | |||
| PASS | batting_totals | current | OAK | BATTING_TOTALS_SUM | current:OAK batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | KC | BATTING_TOTALS_SUM | simulation:KC batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | OAK | BATTING_TOTALS_SUM | simulation:OAK batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | KC | BAT_PITCH_BB_MATCH | simulation:KC batting walks match OAK pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | KC | BAT_PITCH_HR_MATCH | simulation:KC batting home runs match OAK pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | KC | BAT_PITCH_H_MATCH | simulation:KC batting hits match OAK pitching: 9. | |||
| PASS | boxscore_crosscheck | simulation | KC | BAT_PITCH_SO_MATCH | simulation:KC batting strikeouts match OAK pitching: 11. | |||
| PASS | boxscore_crosscheck | simulation | KC | PA_BF_MATCH | simulation:KC PA=42 matches OAK BF=42. | |||
| PASS | boxscore_crosscheck | simulation | KC | RUNS_MATCH_FINAL | simulation:KC runs match final score and opposing pitching runs: 4. | |||
| PASS | boxscore_crosscheck | simulation | OAK | BAT_PITCH_BB_MATCH | simulation:OAK batting walks match KC pitching: 4. | |||
| PASS | boxscore_crosscheck | simulation | OAK | BAT_PITCH_HR_MATCH | simulation:OAK batting home runs match KC pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | OAK | BAT_PITCH_H_MATCH | simulation:OAK batting hits match KC pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | OAK | BAT_PITCH_SO_MATCH | simulation:OAK batting strikeouts match KC pitching: 10. | |||
| PASS | boxscore_crosscheck | simulation | OAK | PA_BF_MATCH | simulation:OAK PA=36 matches KC BF=36. | |||
| PASS | boxscore_crosscheck | simulation | OAK | RUNS_MATCH_FINAL | simulation:OAK runs match final score and opposing pitching runs: 2. | |||
| PASS | current_payload | current | KC | CURRENT_LINEUP_SHAPE | KC current lineup has 9 expected positions. | |||
| PASS | current_payload | current | KC | CURRENT_MODEL_ZERO_FALLBACK | KC current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | KC | CURRENT_NAMES_PRESENT | KC current hitter names are populated. | |||
| PASS | current_payload | current | OAK | CURRENT_LINEUP_SHAPE | OAK current lineup has 9 expected positions. | |||
| PASS | current_payload | current | OAK | CURRENT_MODEL_ZERO_FALLBACK | OAK current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | OAK | CURRENT_NAMES_PRESENT | OAK current hitter names are populated. | |||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.625. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.625. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.375. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.303/0.707. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: KC 9, OAK 5. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: KC 4 - OAK 2. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_KC@OAK. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: KC@OAK. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 151. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 181. | |||||
| PASS | pitch_count | simulation | KC | PITCH_COUNT_PITCHER_MATCH | KC pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | KC | PITCH_COUNT_TOTAL_MATCH | KC pitch_count_summary total, row sum, and pitching total all match: 151. | |||
| PASS | pitch_count | simulation | OAK | PITCH_COUNT_TOTAL_MATCH | OAK pitch_count_summary total, row sum, and pitching total all match: 181. | |||
| PASS | pitching | current | KC | PITCHING_REALISM | current:KC pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | KC | STARTER_PRESENT | current:KC includes a starter/opener role. | |||
| PASS | pitching | current | OAK | PITCHING_REALISM | current:OAK pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | OAK | STARTER_PRESENT | current:OAK includes a starter/opener role. | |||
| PASS | pitching | simulation | KC | PITCHING_REALISM | simulation:KC pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | KC | STARTER_PRESENT | simulation:KC includes a starter/opener role. | |||
| PASS | pitching | simulation | OAK | PITCHING_REALISM | simulation:OAK pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | OAK | STARTER_PRESENT | simulation:OAK includes a starter/opener role. | |||
| PASS | pitching_totals | current | KC | PITCHING_TOTALS_SUM | current:KC pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | KC | PITCHING_TOTALS_SUM | current:KC pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | OAK | PITCHING_TOTALS_SUM | current:OAK pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | OAK | PITCHING_TOTALS_SUM | current:OAK pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | KC | PITCHING_TOTALS_SUM | simulation:KC pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | KC | PITCHING_TOTALS_SUM | simulation:KC pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | OAK | PITCHING_TOTALS_SUM | simulation:OAK pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | OAK | PITCHING_TOTALS_SUM | simulation:OAK pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: KC 6 - 4 OAK. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: KC 4 - 2 OAK. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: KC wins 4-2. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.625. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 5/10 (0.500). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 5/10 (0.500). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: KC wins 4-2. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: KC wins 4-2. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 4-2. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 6. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: KC wins 4-2. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | KC | RECENT_FORM_RANGE | KC recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | OAK | RECENT_FORM_RANGE | OAK recent hitting/pitching rates are in valid ranges. |
Passed checks
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| PASS | batting | current | KC | BATTING_REALISM | current:KC hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | OAK | BATTING_REALISM | current:OAK hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | KC | BATTING_REALISM | simulation:KC hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | OAK | BATTING_REALISM | simulation:OAK hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | KC | BATTING_TOTALS_SUM | current:KC batting totals equal summed player lines. | |||
| PASS | batting_totals | current | OAK | BATTING_TOTALS_SUM | current:OAK batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | KC | BATTING_TOTALS_SUM | simulation:KC batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | OAK | BATTING_TOTALS_SUM | simulation:OAK batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | KC | BAT_PITCH_BB_MATCH | simulation:KC batting walks match OAK pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | KC | BAT_PITCH_HR_MATCH | simulation:KC batting home runs match OAK pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | KC | BAT_PITCH_H_MATCH | simulation:KC batting hits match OAK pitching: 9. | |||
| PASS | boxscore_crosscheck | simulation | KC | BAT_PITCH_SO_MATCH | simulation:KC batting strikeouts match OAK pitching: 11. | |||
| PASS | boxscore_crosscheck | simulation | KC | PA_BF_MATCH | simulation:KC PA=42 matches OAK BF=42. | |||
| PASS | boxscore_crosscheck | simulation | KC | RUNS_MATCH_FINAL | simulation:KC runs match final score and opposing pitching runs: 4. | |||
| PASS | boxscore_crosscheck | simulation | OAK | BAT_PITCH_BB_MATCH | simulation:OAK batting walks match KC pitching: 4. | |||
| PASS | boxscore_crosscheck | simulation | OAK | BAT_PITCH_HR_MATCH | simulation:OAK batting home runs match KC pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | OAK | BAT_PITCH_H_MATCH | simulation:OAK batting hits match KC pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | OAK | BAT_PITCH_SO_MATCH | simulation:OAK batting strikeouts match KC pitching: 10. | |||
| PASS | boxscore_crosscheck | simulation | OAK | PA_BF_MATCH | simulation:OAK PA=36 matches KC BF=36. | |||
| PASS | boxscore_crosscheck | simulation | OAK | RUNS_MATCH_FINAL | simulation:OAK runs match final score and opposing pitching runs: 2. | |||
| PASS | current_payload | current | KC | CURRENT_LINEUP_SHAPE | KC current lineup has 9 expected positions. | |||
| PASS | current_payload | current | KC | CURRENT_MODEL_ZERO_FALLBACK | KC current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | KC | CURRENT_NAMES_PRESENT | KC current hitter names are populated. | |||
| PASS | current_payload | current | OAK | CURRENT_LINEUP_SHAPE | OAK current lineup has 9 expected positions. | |||
| PASS | current_payload | current | OAK | CURRENT_MODEL_ZERO_FALLBACK | OAK current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | OAK | CURRENT_NAMES_PRESENT | OAK current hitter names are populated. | |||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.625. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.625. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.375. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.303/0.707. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: KC 9, OAK 5. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: KC 4 - OAK 2. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_KC@OAK. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: KC@OAK. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 151. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 181. | |||||
| PASS | pitch_count | simulation | KC | PITCH_COUNT_PITCHER_MATCH | KC pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | KC | PITCH_COUNT_TOTAL_MATCH | KC pitch_count_summary total, row sum, and pitching total all match: 151. | |||
| PASS | pitch_count | simulation | OAK | PITCH_COUNT_TOTAL_MATCH | OAK pitch_count_summary total, row sum, and pitching total all match: 181. | |||
| PASS | pitching | current | KC | PITCHING_REALISM | current:KC pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | KC | STARTER_PRESENT | current:KC includes a starter/opener role. | |||
| PASS | pitching | current | OAK | PITCHING_REALISM | current:OAK pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | OAK | STARTER_PRESENT | current:OAK includes a starter/opener role. | |||
| PASS | pitching | simulation | KC | PITCHING_REALISM | simulation:KC pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | KC | STARTER_PRESENT | simulation:KC includes a starter/opener role. | |||
| PASS | pitching | simulation | OAK | PITCHING_REALISM | simulation:OAK pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | OAK | STARTER_PRESENT | simulation:OAK includes a starter/opener role. | |||
| PASS | pitching_totals | current | KC | PITCHING_TOTALS_SUM | current:KC pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | KC | PITCHING_TOTALS_SUM | current:KC pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | OAK | PITCHING_TOTALS_SUM | current:OAK pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | OAK | PITCHING_TOTALS_SUM | current:OAK pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | KC | PITCHING_TOTALS_SUM | simulation:KC pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | KC | PITCHING_TOTALS_SUM | simulation:KC pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | OAK | PITCHING_TOTALS_SUM | simulation:OAK pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | OAK | PITCHING_TOTALS_SUM | simulation:OAK pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: KC 6 - 4 OAK. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: KC 4 - 2 OAK. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: KC wins 4-2. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.625. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 5/10 (0.500). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 5/10 (0.500). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: KC wins 4-2. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: KC wins 4-2. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 4-2. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 6. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: KC wins 4-2. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | KC | RECENT_FORM_RANGE | KC recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | OAK | RECENT_FORM_RANGE | OAK recent hitting/pitching rates are in valid ranges. |
Info/context findings
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| INFO | current_payload | current | KC | CURRENT_PITCHER_DUPLICATION | KC pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | OAK | CURRENT_PITCHER_DUPLICATION | OAK pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
Score evolution
| step | away_runs | home_runs | confidence | description |
|---|---|---|---|---|
| historical_ml | 4.5563812255859375 | 4.945608139038086 | Base ML historical model prediction | |
| variance_applied | 4 | 5 | Random variance applied (0.9-1.1) | |
| enhanced_prediction | 6 | 4 | 0.720 | Enhanced ML with recent form, H2H, low-score analysis |
| capped_target | 6 | 4 | Capped at max 12 realistic runs | |
| simulation_result | 4 | 2 | Final inning-by-inning simulation result |
Inning-by-inning linescore
| team | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | R | H |
|---|---|---|---|---|---|---|---|---|---|---|---|
| KC | 2 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 4 | 9 |
| OAK | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 2 | 5 |
Team totals - current + final simulation
| src | team | type | AB | H | 2B | 3B | HR | RBI | R | BB | SO | SF | HBP | SB | CS | IP | ER | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | KC | batting | 29 | 9 | 0 | 0 | 0 | 3 | 4 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | KC | pitching | 2 | 0 | 2 | 0 | 14 | 9.0 | 2 | 0 | 0 | ||||||||
| current | OAK | batting | 29 | 8 | 0 | 0 | 0 | 2 | 2 | 2 | 9 | 0 | 0 | 0 | 0 | ||||
| current | OAK | pitching | 3 | 0 | 3 | 0 | 9 | 9.0 | 3 | 0 | 0 | ||||||||
| simulation | KC | batting | 35 | 9 | 2 | 0 | 1 | 4 | 4 | 5 | 11 | 1 | 1 | ||||||
| simulation | KC | pitching | 5 | 1 | 2 | 4 | 10 | 9.0 | 2 | 36 | 151 | ||||||||
| simulation | OAK | batting | 32 | 5 | 0 | 0 | 1 | 2 | 2 | 4 | 10 | 0 | 0 | ||||||
| simulation | OAK | pitching | 9 | 1 | 4 | 5 | 11 | 9.0 | 4 | 42 | 181 |
Batting lines - current + final simulation
| src | team | order | pos | name | AB | H | 2B | 3B | HR | R | RBI | BB | SO | HBP | AVG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | KC | C | Carter Jensen | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | KC | CF | Kyle Isbel | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | KC | 3B | Maikel Garcia | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | KC | 2B | Michael Massey | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | KC | 1B | Vinnie Pasquantino | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | KC | SS | Bobby Witt Jr. | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.250 | |
| current | KC | DH | Salvador Perez | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.250 | |
| current | KC | LF | Isaac Collins | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | KC | RF | Jac Caglianone | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | OAK | DH | Brent Rooker | 3 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0.000 | |
| current | OAK | 2B | Jeff McNeil | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | OAK | C | Shea Langeliers | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 | |
| current | OAK | LF | Tyler Soderstrom | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | OAK | 1B | Nick Kurtz | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.333 | |
| current | OAK | 3B | Darell Hernaiz | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | OAK | CF | Lawrence Butler | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | OAK | SS | Jacob Wilson | 4 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.250 | |
| current | OAK | RF | Carlos Cortes | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| simulation | KC | 1 | 3B | Maikel Garcia | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.250 |
| simulation | KC | 2 | SS | Bobby Witt Jr. | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.200 |
| simulation | KC | 3 | 1B | Vinnie Pasquantino | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 2 | 1 | 0 | 0.333 |
| simulation | KC | 4 | DH | Salvador Perez | 3 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0.000 |
| simulation | KC | 5 | C | Carter Jensen | 5 | 2 | 0 | 0 | 1 | 1 | 2 | 0 | 1 | 0 | 0.400 |
| simulation | KC | 6 | 2B | Michael Massey | 5 | 2 | 1 | 0 | 0 | 1 | 1 | 0 | 2 | 0 | 0.400 |
| simulation | KC | 7 | RF | Jac Caglianone | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 |
| simulation | KC | 8 | LF | Isaac Collins | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 2 | 0 | 0.000 |
| simulation | KC | 9 | CF | Kyle Isbel | 3 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 2 | 0 | 0.333 |
| simulation | OAK | 1 | 1B | Nick Kurtz | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.000 |
| simulation | OAK | 2 | C | Shea Langeliers | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 2 | 0 | 0.000 |
| simulation | OAK | 3 | LF | Tyler Soderstrom | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.000 |
| simulation | OAK | 4 | DH | Brent Rooker | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.333 |
| simulation | OAK | 5 | RF | Carlos Cortes | 4 | 2 | 0 | 0 | 1 | 1 | 2 | 0 | 0 | 0 | 0.500 |
| simulation | OAK | 6 | SS | Jacob Wilson | 4 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | 2 | 0 | 0.500 |
| simulation | OAK | 7 | 2B | Jeff McNeil | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | OAK | 8 | 3B | Darell Hernaiz | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.000 |
| simulation | OAK | 9 | CF | Lawrence Butler | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.000 |
Pitching lines - current + final simulation
| src | team | order | name | role | IP | H | R | ER | BB | SO | HR | BF | Pitches | sim_ERA | season_ERA | season_WHIP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | KC | 1 | Michael Wacha | Starter | 4.1 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0.00 | 2.52 | 0.93 |
| current | KC | 2 | Matt Strahm | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 4.41 | 1.47 |
| current | KC | 3 | Nick Mears | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 2.62 | 1.17 |
| current | KC | 4 | Daniel Lynch IV | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 0.87 | 0.58 |
| current | KC | 5 | Lucas Erceg | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 13.50 | 4.74 | 1.75 |
| current | KC | 6 | John Schreiber | Middle Reliever | 0.1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 27.00 | 5.23 | 1.74 |
| current | OAK | 1 | Luis Severino | Starter | 4.2 | 1 | 1 | 1 | 0 | 4 | 0 | 0 | 0 | 1.93 | 5.33 | 1.61 |
| current | OAK | 2 | Joel Kuhnel | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 2.69 | 1.34 |
| current | OAK | 3 | Hogan Harris | Middle Reliever | 1.0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 9.00 | 3.52 | 2.03 |
| current | OAK | 4 | Scott Barlow | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 0.82 | 0.91 |
| current | OAK | 5 | Justin Sterner | Middle Reliever | 0.2 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 4.57 | 1.74 |
| current | OAK | 6 | Mark Leiter Jr. | Middle Reliever | 0.1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 27.00 | 7.50 | 2.04 |
| simulation | KC | 1 | Michael Wacha | Starter | 5.0 | 4 | 0 | 0 | 2 | 6 | 0 | 21 | 91 | 0.00 | 2.52 | 0.93 |
| simulation | KC | 2 | Lucas Erceg | Middle Reliever | 1.0 | 1 | 2 | 2 | 1 | 1 | 1 | 5 | 21 | 18.00 | 4.74 | 1.75 |
| simulation | KC | 3 | Matt Strahm | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 9 | 0.00 | 4.41 | 1.47 |
| simulation | KC | 4 | Nick Mears | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 1 | 0 | 4 | 16 | 0.00 | 2.62 | 1.17 |
| simulation | KC | 5 | Daniel Lynch IV | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 14 | 0.00 | 0.87 | 0.58 |
| simulation | OAK | 1 | Luis Severino | Starter | 4.0 | 7 | 2 | 2 | 1 | 6 | 0 | 20 | 89 | 4.50 | 5.33 | 1.61 |
| simulation | OAK | 2 | Joel Kuhnel | Middle Reliever | 1.0 | 1 | 0 | 0 | 1 | 1 | 1 | 5 | 22 | 0.00 | 2.69 | 1.34 |
| simulation | OAK | 3 | Hogan Harris | Middle Reliever | 1.0 | 0 | 1 | 1 | 1 | 1 | 0 | 4 | 17 | 9.00 | 3.52 | 2.03 |
| simulation | OAK | 4 | Mark Leiter Jr. | Middle Reliever | 1.0 | 0 | 1 | 1 | 0 | 1 | 0 | 4 | 14 | 9.00 | 7.50 | 2.04 |
| simulation | OAK | 5 | Justin Sterner | Middle Reliever | 1.0 | 1 | 0 | 0 | 2 | 1 | 0 | 6 | 26 | 0.00 | 4.57 | 1.74 |
| simulation | OAK | 6 | Scott Barlow | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 13 | 0.00 | 0.82 | 0.91 |
Pitch count summary
| team | pitcher | role | IP | R | H | BB | SO | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|
| KC | Michael Wacha | Starter | 5.0 | 0 | 4 | 2 | 6 | 21 | 91 |
| KC | Lucas Erceg | Middle Reliever | 1.0 | 2 | 1 | 1 | 1 | 5 | 21 |
| KC | Matt Strahm | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 9 |
| KC | Nick Mears | Middle Reliever | 1.0 | 0 | 0 | 1 | 1 | 4 | 16 |
| KC | Daniel Lynch IV | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 14 |
| OAK | Luis Severino | Starter | 4.0 | 2 | 7 | 1 | 6 | 20 | 89 |
| OAK | Joel Kuhnel | Middle Reliever | 1.0 | 2 | 1 | 1 | 1 | 5 | 22 |
| OAK | Hogan Harris | Middle Reliever | 1.0 | 0 | 0 | 1 | 1 | 4 | 17 |
| OAK | Mark Leiter Jr. | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 4 | 14 |
| OAK | Justin Sterner | Middle Reliever | 1.0 | 0 | 1 | 2 | 1 | 6 | 26 |
| OAK | Scott Barlow | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 13 |
Audit rule catalog
| rule | status | critical | error | warning | pass | description |
|---|---|---|---|---|---|---|
| BATTING_REALISM | good | 0 | 0 | 0 | 4 | Player/team batting lines obey baseball constraints. |
| BATTING_TOTALS_SUM | good | 0 | 0 | 0 | 4 | Team batting totals equal the sum of player batting lines. |
| BAT_PITCH_BB_MATCH | good | 0 | 0 | 0 | 2 | Batting walks match opposing pitching walks allowed. |
| BAT_PITCH_HR_MATCH | good | 0 | 0 | 0 | 2 | Batting home runs match opposing pitching home runs allowed. |
| BAT_PITCH_H_MATCH | good | 0 | 0 | 0 | 2 | Batting hits match opposing pitching hits allowed. |
| BAT_PITCH_SO_MATCH | good | 0 | 0 | 0 | 2 | Batting strikeouts match opposing pitching strikeouts. |
| CONFIDENCE_RANGE | good | 0 | 0 | 0 | 5 | Confidence values are between 0 and 1. |
| CURRENT_FINALIZED_MATCH_BOX | warning | 0 | 0 | 4 | 0 | Current finalized player totals agree with final simulation box score. |
| CURRENT_LINEUP_SHAPE | good | 0 | 0 | 0 | 2 | Current predicted_performance contains a plausible 9-player lineup. |
| CURRENT_MODEL_ZERO_FALLBACK | good | 0 | 0 | 0 | 2 | Current model payload did not rely too heavily on all-zero model predictions. |
| CURRENT_NAMES_PRESENT | good | 0 | 0 | 0 | 2 | Current predicted_performance has usable player names. |
| CURRENT_PITCHER_DUPLICATION | info | 0 | 0 | 0 | 0 | Pitcher lists duplicated across current sections are detected and reconciled. |
| CURRENT_SCORE_MATCHES_SIM | good | 0 | 0 | 0 | 1 | game.predicted_runs matches scoring_simulation.final_score. |
| DATE_PARSE | good | 0 | 0 | 0 | 1 | Game date can be parsed as an ISO date. |
| FILENAME_GAME_ID_MATCH | good | 0 | 0 | 0 | 1 | Filename and game_id identify the same game. |
| FILENAME_TEAM_MATCH | good | 0 | 0 | 0 | 1 | Filename teams match the teams inside the JSON. |
| GAME_SUMMARY_MATCH | good | 0 | 0 | 0 | 1 | game_summary text agrees with final score. |
| H2H_DATA_LEAKAGE | warning | 0 | 0 | 1 | 0 | Head-to-head history does not include same-day or future games in pregame mode. |
| INNINGS_COUNT | good | 0 | 0 | 0 | 1 | Inning count is valid for MLB. |
| INNING_OUTS | not triggered | 0 | 0 | 0 | 0 | Each played half inning has valid outs. |
| INNING_PLAY_SUMS | good | 0 | 0 | 0 | 1 | Detailed plays agree with inning runs, hits, outs, and pitches. |
| INNING_SEQUENCE | good | 0 | 0 | 0 | 1 | Innings are sequential and unique. |
| INNING_TOTAL_HITS | good | 0 | 0 | 0 | 1 | Inning hits sum to batting team hits. |
| INNING_TOTAL_RUNS | good | 0 | 0 | 0 | 1 | Inning runs sum to final score. |
| LOW_SCORE_ANALYSIS | warning | 0 | 0 | 1 | 2 | Low-score probability factors are valid and directionally consistent. |
| PA_BF_MATCH | good | 0 | 0 | 0 | 2 | Team plate appearances match opposing batters faced. |
| PITCHING_REALISM | good | 0 | 0 | 0 | 4 | Pitcher/team pitching lines obey baseball constraints. |
| PITCHING_TOTALS_SUM | good | 0 | 0 | 0 | 8 | Team pitching totals equal the sum of pitcher lines. |
| PITCH_COUNT_PITCHER_MATCH | warning | 0 | 0 | 3 | 1 | Pitch count summary pitcher rows agree with pitching box score. |
| PITCH_COUNT_TOTAL_MATCH | good | 0 | 0 | 0 | 4 | Pitch count summary totals match team pitching totals. |
| PITCH_DETAIL_SANITY | good | 0 | 0 | 0 | 1 | Pitch-by-pitch details have plausible values. |
| PREDICTION_COMPARISON_MATCH | good | 0 | 0 | 0 | 3 | prediction_comparison scores agree with target/final result. |
| RECENT_FORM_RANGE | good | 0 | 0 | 0 | 4 | Recent-form metrics are within valid numeric ranges. |
| RECONCILIATION_PROPAGATION | info | 0 | 0 | 0 | 0 | When score_target_reconciliation is used, all final-facing sections are regenerated from the reconciled score. |
| REPORT_COMPLETE | good | 0 | 0 | 0 | 1 | Report includes every audit result in the all-findings table. |
| REPORT_CSV_EXPORT | not triggered | 0 | 0 | 0 | 0 | Optional CSV exports were written for summary and problem rows. |
| RUNS_MATCH_FINAL | good | 0 | 0 | 0 | 2 | Batting/pitching runs agree with final score. |
| SCHEMA_ROOTS_PRESENT | good | 0 | 0 | 0 | 1 | Expected JSON root sections exist and can be audited. |
| SCORE_NO_TIE | good | 0 | 0 | 0 | 1 | Final MLB score has a clear winner. |
| SCORE_STEP_FINAL_MATCH | good | 0 | 0 | 0 | 1 | score_evolution simulation_result matches final score. |
| SCORE_STEP_ORDER | good | 0 | 0 | 0 | 1 | Score evolution contains the expected ordered steps. |
| STARTER_PRESENT | good | 0 | 0 | 0 | 4 | Pitching staff includes a starter or opener when expected. |
| TARGET_SCORE_DRIFT | warning | 0 | 0 | 1 | 0 | Final score does not drift too far from enhanced target. |
| TEAM_RECENT_RECORD | warning | 0 | 0 | 2 | 0 | team_recent_performance wins and win_pct agree with games_analyzed. |
| TOTAL_RUNS_MATCH | good | 0 | 0 | 0 | 1 | total_runs equals away + home runs. |
| WINNER_FIELD_MATCH | good | 0 | 0 | 0 | 1 | winner field agrees with the final score. |
20260429_LAA@CHW
20260429_LAA@CHW.json • 2026-04-29
Final simulation needs review: critical box-score inconsistencies remain. Risk score: 310.
Action summary - what to fix first
| Level | Problem group / fix | Count | Teams | Example |
|---|---|---|---|---|
| CRITICAL | Innings Review the listed finding and decide whether to fix the data or downgrade the rule. | 1C / 0E / 0W | - | Inning runs 1-9 do not match final score 4-6. |
| CRITICAL | Score Reconciliation Review the listed finding and decide whether to fix the data or downgrade the rule. | 1C / 0E / 0W | - | score_target_reconciliation was used, but not all final-facing sections were regenerated: inning_by_inning=1-9 final=4-6 |
| WARN | Pitch count summary differs by pitcher Pitch-count rows disagree with individual pitching box-score rows. Recalculate pitch_count_summary from the same final pitcher ledger used by box_score.pitching. | 0C / 0E / 5W | CHW, LAA | CHW pitch_count row for Bryan Hudson differs from pitching box score: runs_allowed/R: summary=0, box=1. CHW pitch_count row for Grant Taylor differs from pitching box score: runs_allowed/R: summary=0, box=1. |
| WARN | Current payload is not synced to final box score The final simulation box score is treated as the source of truth. Sync game.predicted_performance finalized_stats/pitcher projections after scoring_simulation, or stop comparing that pre-simulation payload as final output. | 0C / 0E / 4W | CHW, LAA | CHW current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=27, sim=34; H: current=9, sim=10; 2B: current=0, sim=2; HR: current=0, sim=1; RBI: current=3, sim=6; BB: current=0, sim=5; SO: current=9, sim=4). CHW current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=7; R: current=3, sim=4; ER: current=3, sim=2; BB: current=0, sim=3; SO: current=9, sim=7). |
| WARN | team_recent_performance record bug wins and win_pct do not agree. Either calculate wins correctly or derive win_pct directly as wins/games_analyzed. | 0C / 0E / 2W | CHW, LAA | CHW wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. LAA wins=0 over games_analyzed=31 implies win_pct=0.000, but JSON has 0.500. |
Problems table - exact rows
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| CRITICAL | innings | INNING_TOTAL_RUNS | Inning runs 1-9 do not match final score 4-6. | |||||
| CRITICAL | score_reconciliation | RECONCILIATION_PROPAGATION | score_target_reconciliation was used, but not all final-facing sections were regenerated: inning_by_inning=1-9 final=4-6 | All final-facing sections must use the reconciled score. | ||||
| WARN | current_vs_final | cross-schema | CHW | CURRENT_FINALIZED_MATCH_BOX | CHW current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=27, sim=34; H: current=9, sim=10; 2B: current=0, sim=2; HR: current=0, sim=1; RBI: current=3, sim=6; BB: current=0, sim=5; SO: current=9, sim=4). | |||
| WARN | current_vs_final | cross-schema | CHW | CURRENT_FINALIZED_MATCH_BOX | CHW current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=7; R: current=3, sim=4; ER: current=3, sim=2; BB: current=0, sim=3; SO: current=9, sim=7). | |||
| WARN | current_vs_final | cross-schema | LAA | CURRENT_FINALIZED_MATCH_BOX | LAA current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=30, sim=34; H: current=9, sim=7; 2B: current=0, sim=1; RBI: current=3, sim=1; BB: current=1, sim=3; SO: current=9, sim=7). | |||
| WARN | current_vs_final | cross-schema | LAA | CURRENT_FINALIZED_MATCH_BOX | LAA current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=4, sim=10; R: current=4, sim=6; ER: current=4, sim=6; BB: current=0, sim=5; SO: current=11, sim=4; HR: current=0, sim=1). | |||
| WARN | pitch_count | simulation | CHW | Bryan Hudson | PITCH_COUNT_PITCHER_MATCH | CHW pitch_count row for Bryan Hudson differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | CHW | Grant Taylor | PITCH_COUNT_PITCHER_MATCH | CHW pitch_count row for Grant Taylor differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | CHW | Jordan Leasure | PITCH_COUNT_PITCHER_MATCH | CHW pitch_count row for Jordan Leasure differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | LAA | Drew Pomeranz | PITCH_COUNT_PITCHER_MATCH | LAA pitch_count row for Drew Pomeranz differs from pitching box score: runs_allowed/R: summary=3, box=1. | ||
| WARN | pitch_count | simulation | LAA | Yusei Kikuchi | PITCH_COUNT_PITCHER_MATCH | LAA pitch_count row for Yusei Kikuchi differs from pitching box score: runs_allowed/R: summary=6, box=5. | ||
| WARN | team_recent_performance | current | CHW | TEAM_RECENT_RECORD | CHW wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | LAA | TEAM_RECENT_RECORD | LAA wins=0 over games_analyzed=31 implies win_pct=0.000, but JSON has 0.500. |
All findings - complete audit trail
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| CRITICAL | innings | INNING_TOTAL_RUNS | Inning runs 1-9 do not match final score 4-6. | |||||
| CRITICAL | score_reconciliation | RECONCILIATION_PROPAGATION | score_target_reconciliation was used, but not all final-facing sections were regenerated: inning_by_inning=1-9 final=4-6 | All final-facing sections must use the reconciled score. | ||||
| WARN | current_vs_final | cross-schema | CHW | CURRENT_FINALIZED_MATCH_BOX | CHW current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=27, sim=34; H: current=9, sim=10; 2B: current=0, sim=2; HR: current=0, sim=1; RBI: current=3, sim=6; BB: current=0, sim=5; SO: current=9, sim=4). | |||
| WARN | current_vs_final | cross-schema | CHW | CURRENT_FINALIZED_MATCH_BOX | CHW current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=7; R: current=3, sim=4; ER: current=3, sim=2; BB: current=0, sim=3; SO: current=9, sim=7). | |||
| WARN | current_vs_final | cross-schema | LAA | CURRENT_FINALIZED_MATCH_BOX | LAA current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=30, sim=34; H: current=9, sim=7; 2B: current=0, sim=1; RBI: current=3, sim=1; BB: current=1, sim=3; SO: current=9, sim=7). | |||
| WARN | current_vs_final | cross-schema | LAA | CURRENT_FINALIZED_MATCH_BOX | LAA current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=4, sim=10; R: current=4, sim=6; ER: current=4, sim=6; BB: current=0, sim=5; SO: current=11, sim=4; HR: current=0, sim=1). | |||
| WARN | pitch_count | simulation | CHW | Bryan Hudson | PITCH_COUNT_PITCHER_MATCH | CHW pitch_count row for Bryan Hudson differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | CHW | Grant Taylor | PITCH_COUNT_PITCHER_MATCH | CHW pitch_count row for Grant Taylor differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | CHW | Jordan Leasure | PITCH_COUNT_PITCHER_MATCH | CHW pitch_count row for Jordan Leasure differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | LAA | Drew Pomeranz | PITCH_COUNT_PITCHER_MATCH | LAA pitch_count row for Drew Pomeranz differs from pitching box score: runs_allowed/R: summary=3, box=1. | ||
| WARN | pitch_count | simulation | LAA | Yusei Kikuchi | PITCH_COUNT_PITCHER_MATCH | LAA pitch_count row for Yusei Kikuchi differs from pitching box score: runs_allowed/R: summary=6, box=5. | ||
| WARN | team_recent_performance | current | CHW | TEAM_RECENT_RECORD | CHW wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | LAA | TEAM_RECENT_RECORD | LAA wins=0 over games_analyzed=31 implies win_pct=0.000, but JSON has 0.500. | |||
| INFO | current_payload | current | CHW | CURRENT_PITCHER_DUPLICATION | CHW pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | LAA | CURRENT_PITCHER_DUPLICATION | LAA pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| PASS | batting | current | CHW | BATTING_REALISM | current:CHW hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | LAA | BATTING_REALISM | current:LAA hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | CHW | BATTING_REALISM | simulation:CHW hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | LAA | BATTING_REALISM | simulation:LAA hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | CHW | BATTING_TOTALS_SUM | current:CHW batting totals equal summed player lines. | |||
| PASS | batting_totals | current | LAA | BATTING_TOTALS_SUM | current:LAA batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | CHW | BATTING_TOTALS_SUM | simulation:CHW batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | LAA | BATTING_TOTALS_SUM | simulation:LAA batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | CHW | BAT_PITCH_BB_MATCH | simulation:CHW batting walks match LAA pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | CHW | BAT_PITCH_HR_MATCH | simulation:CHW batting home runs match LAA pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | CHW | BAT_PITCH_H_MATCH | simulation:CHW batting hits match LAA pitching: 10. | |||
| PASS | boxscore_crosscheck | simulation | CHW | BAT_PITCH_SO_MATCH | simulation:CHW batting strikeouts match LAA pitching: 4. | |||
| PASS | boxscore_crosscheck | simulation | CHW | PA_BF_MATCH | simulation:CHW PA=39 matches LAA BF=39. | |||
| PASS | boxscore_crosscheck | simulation | CHW | RUNS_MATCH_FINAL | simulation:CHW runs match final score and opposing pitching runs: 6. | |||
| PASS | boxscore_crosscheck | simulation | LAA | BAT_PITCH_BB_MATCH | simulation:LAA batting walks match CHW pitching: 3. | |||
| PASS | boxscore_crosscheck | simulation | LAA | BAT_PITCH_HR_MATCH | simulation:LAA batting home runs match CHW pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | LAA | BAT_PITCH_H_MATCH | simulation:LAA batting hits match CHW pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | LAA | BAT_PITCH_SO_MATCH | simulation:LAA batting strikeouts match CHW pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | LAA | PA_BF_MATCH | simulation:LAA PA=37 matches CHW BF=37. | |||
| PASS | boxscore_crosscheck | simulation | LAA | RUNS_MATCH_FINAL | simulation:LAA runs match final score and opposing pitching runs: 4. | |||
| PASS | current_payload | current | CHW | CURRENT_LINEUP_SHAPE | CHW current lineup has 9 expected positions. | |||
| PASS | current_payload | current | CHW | CURRENT_MODEL_ZERO_FALLBACK | CHW current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | CHW | CURRENT_NAMES_PRESENT | CHW current hitter names are populated. | |||
| PASS | current_payload | current | LAA | CURRENT_LINEUP_SHAPE | LAA current lineup has 9 expected positions. | |||
| PASS | current_payload | current | LAA | CURRENT_MODEL_ZERO_FALLBACK | LAA current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | LAA | CURRENT_NAMES_PRESENT | LAA current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.323. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.677. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.677. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 10 is reasonably close to low-score expected_total_runs 10.2. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.328/0.755. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_OUTS | Inning 9 home marked not_played with empty stats. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: LAA 7, CHW 10. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_LAA@CHW. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: LAA@CHW. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 157. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 156. | |||||
| PASS | pitch_count | simulation | CHW | PITCH_COUNT_TOTAL_MATCH | CHW pitch_count_summary total, row sum, and pitching total all match: 156. | |||
| PASS | pitch_count | simulation | LAA | PITCH_COUNT_TOTAL_MATCH | LAA pitch_count_summary total, row sum, and pitching total all match: 157. | |||
| PASS | pitching | current | CHW | PITCHING_REALISM | current:CHW pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | CHW | STARTER_PRESENT | current:CHW includes a starter/opener role. | |||
| PASS | pitching | current | LAA | PITCHING_REALISM | current:LAA pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | LAA | STARTER_PRESENT | current:LAA includes a starter/opener role. | |||
| PASS | pitching | simulation | CHW | PITCHING_REALISM | simulation:CHW pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | CHW | STARTER_PRESENT | simulation:CHW includes a starter/opener role. | |||
| PASS | pitching | simulation | LAA | PITCHING_REALISM | simulation:LAA pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | LAA | STARTER_PRESENT | simulation:LAA includes a starter/opener role. | |||
| PASS | pitching_totals | current | CHW | PITCHING_TOTALS_SUM | current:CHW pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | CHW | PITCHING_TOTALS_SUM | current:CHW pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | LAA | PITCHING_TOTALS_SUM | current:LAA pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | current | LAA | PITCHING_TOTALS_SUM | current:LAA pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | CHW | PITCHING_TOTALS_SUM | simulation:CHW pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | CHW | PITCHING_TOTALS_SUM | simulation:CHW pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | LAA | PITCHING_TOTALS_SUM | simulation:LAA pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | simulation | LAA | PITCHING_TOTALS_SUM | simulation:LAA pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: LAA 4 - 6 CHW. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: LAA 4 - 6 CHW. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: CHW wins 6-4. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.677. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 1/10 (0.100). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 6/10 (0.600). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: CHW wins 6-4. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: CHW wins 4-6. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 4-6. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 4-6, final 4-6 (delta 0). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 10. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: CHW wins 6-4. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | CHW | RECENT_FORM_RANGE | CHW recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | LAA | RECENT_FORM_RANGE | LAA recent hitting/pitching rates are in valid ranges. |
Passed checks
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| PASS | batting | current | CHW | BATTING_REALISM | current:CHW hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | LAA | BATTING_REALISM | current:LAA hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | CHW | BATTING_REALISM | simulation:CHW hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | LAA | BATTING_REALISM | simulation:LAA hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | CHW | BATTING_TOTALS_SUM | current:CHW batting totals equal summed player lines. | |||
| PASS | batting_totals | current | LAA | BATTING_TOTALS_SUM | current:LAA batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | CHW | BATTING_TOTALS_SUM | simulation:CHW batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | LAA | BATTING_TOTALS_SUM | simulation:LAA batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | CHW | BAT_PITCH_BB_MATCH | simulation:CHW batting walks match LAA pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | CHW | BAT_PITCH_HR_MATCH | simulation:CHW batting home runs match LAA pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | CHW | BAT_PITCH_H_MATCH | simulation:CHW batting hits match LAA pitching: 10. | |||
| PASS | boxscore_crosscheck | simulation | CHW | BAT_PITCH_SO_MATCH | simulation:CHW batting strikeouts match LAA pitching: 4. | |||
| PASS | boxscore_crosscheck | simulation | CHW | PA_BF_MATCH | simulation:CHW PA=39 matches LAA BF=39. | |||
| PASS | boxscore_crosscheck | simulation | CHW | RUNS_MATCH_FINAL | simulation:CHW runs match final score and opposing pitching runs: 6. | |||
| PASS | boxscore_crosscheck | simulation | LAA | BAT_PITCH_BB_MATCH | simulation:LAA batting walks match CHW pitching: 3. | |||
| PASS | boxscore_crosscheck | simulation | LAA | BAT_PITCH_HR_MATCH | simulation:LAA batting home runs match CHW pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | LAA | BAT_PITCH_H_MATCH | simulation:LAA batting hits match CHW pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | LAA | BAT_PITCH_SO_MATCH | simulation:LAA batting strikeouts match CHW pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | LAA | PA_BF_MATCH | simulation:LAA PA=37 matches CHW BF=37. | |||
| PASS | boxscore_crosscheck | simulation | LAA | RUNS_MATCH_FINAL | simulation:LAA runs match final score and opposing pitching runs: 4. | |||
| PASS | current_payload | current | CHW | CURRENT_LINEUP_SHAPE | CHW current lineup has 9 expected positions. | |||
| PASS | current_payload | current | CHW | CURRENT_MODEL_ZERO_FALLBACK | CHW current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | CHW | CURRENT_NAMES_PRESENT | CHW current hitter names are populated. | |||
| PASS | current_payload | current | LAA | CURRENT_LINEUP_SHAPE | LAA current lineup has 9 expected positions. | |||
| PASS | current_payload | current | LAA | CURRENT_MODEL_ZERO_FALLBACK | LAA current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | LAA | CURRENT_NAMES_PRESENT | LAA current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.323. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.677. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.677. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 10 is reasonably close to low-score expected_total_runs 10.2. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.328/0.755. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_OUTS | Inning 9 home marked not_played with empty stats. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: LAA 7, CHW 10. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_LAA@CHW. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: LAA@CHW. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 157. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 156. | |||||
| PASS | pitch_count | simulation | CHW | PITCH_COUNT_TOTAL_MATCH | CHW pitch_count_summary total, row sum, and pitching total all match: 156. | |||
| PASS | pitch_count | simulation | LAA | PITCH_COUNT_TOTAL_MATCH | LAA pitch_count_summary total, row sum, and pitching total all match: 157. | |||
| PASS | pitching | current | CHW | PITCHING_REALISM | current:CHW pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | CHW | STARTER_PRESENT | current:CHW includes a starter/opener role. | |||
| PASS | pitching | current | LAA | PITCHING_REALISM | current:LAA pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | LAA | STARTER_PRESENT | current:LAA includes a starter/opener role. | |||
| PASS | pitching | simulation | CHW | PITCHING_REALISM | simulation:CHW pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | CHW | STARTER_PRESENT | simulation:CHW includes a starter/opener role. | |||
| PASS | pitching | simulation | LAA | PITCHING_REALISM | simulation:LAA pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | LAA | STARTER_PRESENT | simulation:LAA includes a starter/opener role. | |||
| PASS | pitching_totals | current | CHW | PITCHING_TOTALS_SUM | current:CHW pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | CHW | PITCHING_TOTALS_SUM | current:CHW pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | LAA | PITCHING_TOTALS_SUM | current:LAA pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | current | LAA | PITCHING_TOTALS_SUM | current:LAA pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | CHW | PITCHING_TOTALS_SUM | simulation:CHW pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | CHW | PITCHING_TOTALS_SUM | simulation:CHW pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | LAA | PITCHING_TOTALS_SUM | simulation:LAA pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | simulation | LAA | PITCHING_TOTALS_SUM | simulation:LAA pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: LAA 4 - 6 CHW. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: LAA 4 - 6 CHW. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: CHW wins 6-4. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.677. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 1/10 (0.100). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 6/10 (0.600). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: CHW wins 6-4. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: CHW wins 4-6. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 4-6. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 4-6, final 4-6 (delta 0). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 10. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: CHW wins 6-4. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | CHW | RECENT_FORM_RANGE | CHW recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | LAA | RECENT_FORM_RANGE | LAA recent hitting/pitching rates are in valid ranges. |
Info/context findings
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| INFO | current_payload | current | CHW | CURRENT_PITCHER_DUPLICATION | CHW pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | LAA | CURRENT_PITCHER_DUPLICATION | LAA pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. |
Score evolution
| step | away_runs | home_runs | confidence | description |
|---|---|---|---|---|
| historical_ml | 5.29160213470459 | 4.163434982299805 | Base ML historical model prediction | |
| variance_applied | 6 | 4 | Random variance applied (0.9-1.1) | |
| enhanced_prediction | 4 | 6 | 0.888 | Enhanced ML with recent form, H2H, low-score analysis |
| capped_target | 4 | 6 | Capped at max 12 realistic runs | |
| score_target_reconciliation | 4 | 6 | Final score reconciled to enhanced target after excessive simulation drift | |
| simulation_result | 4 | 6 | Final inning-by-inning simulation result |
Inning-by-inning linescore
| team | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | R | H |
|---|---|---|---|---|---|---|---|---|---|---|---|
| LAA | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 7 |
| CHW | 3 | 3 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 9 | 10 |
Team totals - current + final simulation
| src | team | type | AB | H | 2B | 3B | HR | RBI | R | BB | SO | SF | HBP | SB | CS | IP | ER | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | LAA | batting | 30 | 9 | 0 | 0 | 0 | 3 | 4 | 1 | 9 | 0 | 0 | 0 | 0 | ||||
| current | LAA | pitching | 4 | 0 | 4 | 0 | 11 | 8.0 | 4 | 0 | 0 | ||||||||
| current | CHW | batting | 27 | 9 | 0 | 0 | 0 | 3 | 6 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | CHW | pitching | 3 | 0 | 3 | 0 | 9 | 9.0 | 3 | 0 | 0 | ||||||||
| simulation | LAA | batting | 34 | 7 | 1 | 0 | 0 | 1 | 4 | 3 | 7 | 0 | 0 | ||||||
| simulation | LAA | pitching | 10 | 1 | 6 | 5 | 4 | 8.0 | 6 | 39 | 157 | ||||||||
| simulation | CHW | batting | 34 | 10 | 2 | 0 | 1 | 6 | 6 | 5 | 4 | 0 | 0 | ||||||
| simulation | CHW | pitching | 7 | 0 | 4 | 3 | 7 | 9.0 | 2 | 37 | 156 |
Batting lines - current + final simulation
| src | team | order | pos | name | AB | H | 2B | 3B | HR | R | RBI | BB | SO | HBP | AVG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | LAA | DH | Jorge Soler | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | LAA | RF | Jo Adell | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.250 | |
| current | LAA | CF | Mike Trout | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0.333 | |
| current | LAA | 3B | Yoán Moncada | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | LAA | 1B | Nolan Schanuel | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.250 | |
| current | LAA | SS | Zach Neto | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 | |
| current | LAA | C | Travis d'Arnaud | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | LAA | 2B | Adam Frazier | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | LAA | LF | Josh Lowe | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CHW | 2B | Chase Meidroth | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CHW | 1B | Munetaka Murakami | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | CHW | 3B | Miguel Vargas | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CHW | C | Edgar Quero | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CHW | DH | Everson Pereira | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CHW | SS | Colson Montgomery | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | CHW | CF | Luisangel Acuña | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CHW | LF | Derek Hill | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CHW | RF | Austin Hays | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| simulation | LAA | 1 | SS | Zach Neto | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 2 | 0 | 0 | 0.333 |
| simulation | LAA | 2 | CF | Mike Trout | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.000 |
| simulation | LAA | 3 | 3B | Yoán Moncada | 4 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0.250 |
| simulation | LAA | 4 | DH | Jorge Soler | 4 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.250 |
| simulation | LAA | 5 | 1B | Nolan Schanuel | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.250 |
| simulation | LAA | 6 | RF | Jo Adell | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.000 |
| simulation | LAA | 7 | LF | Josh Lowe | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.000 |
| simulation | LAA | 8 | C | Travis d'Arnaud | 4 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0.500 |
| simulation | LAA | 9 | 2B | Adam Frazier | 4 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 |
| simulation | CHW | 1 | 2B | Chase Meidroth | 4 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0.250 |
| simulation | CHW | 2 | 3B | Miguel Vargas | 3 | 2 | 0 | 0 | 1 | 1 | 1 | 2 | 0 | 0 | 0.667 |
| simulation | CHW | 3 | 1B | Munetaka Murakami | 4 | 1 | 0 | 0 | 0 | 1 | 2 | 1 | 1 | 0 | 0.250 |
| simulation | CHW | 4 | DH | Everson Pereira | 3 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0.333 |
| simulation | CHW | 5 | RF | Austin Hays | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | CHW | 6 | SS | Colson Montgomery | 4 | 1 | 1 | 0 | 0 | 1 | 2 | 0 | 0 | 0 | 0.250 |
| simulation | CHW | 7 | C | Edgar Quero | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.250 |
| simulation | CHW | 8 | LF | Derek Hill | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 |
| simulation | CHW | 9 | CF | Luisangel Acuña | 4 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0.500 |
Pitching lines - current + final simulation
| src | team | order | name | role | IP | H | R | ER | BB | SO | HR | BF | Pitches | sim_ERA | season_ERA | season_WHIP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | LAA | 1 | Yusei Kikuchi | Starter | 4.2 | 1 | 1 | 1 | 0 | 5 | 0 | 0 | 0 | 1.93 | 6.36 | 1.63 |
| current | LAA | 2 | Brent Suter | Middle Reliever | 1.1 | 1 | 1 | 1 | 0 | 3 | 0 | 0 | 0 | 6.75 | 3.44 | 1.31 |
| current | LAA | 3 | Ryan Zeferjahn | Middle Reliever | 1.1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 6.75 | 6.38 | 1.42 |
| current | LAA | 4 | Sam Bachman | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 13.50 | 4.00 | 1.48 |
| current | LAA | 5 | Chase Silseth | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4.50 | 2.25 | |
| current | LAA | 6 | Drew Pomeranz | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 9.52 | 1.83 | |
| current | CHW | 1 | Erick Fedde | Starter | 6.2 | 1 | 1 | 1 | 0 | 3 | 0 | 0 | 0 | 1.35 | 3.54 | 1.18 |
| current | CHW | 2 | Grant Taylor | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 1.48 | 1.31 |
| current | CHW | 3 | Bryan Hudson | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 13.50 | 1.84 | 1.94 |
| current | CHW | 4 | Jordan Leasure | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 13.50 | 4.34 | 1.08 |
| simulation | LAA | 1 | Yusei Kikuchi | Starter | 2.0 | 6 | 5 | 5 | 3 | 1 | 0 | 15 | 62 | 22.50 | 6.36 | 1.63 |
| simulation | LAA | 2 | Drew Pomeranz | Middle Reliever | 1.0 | 3 | 1 | 1 | 0 | 1 | 1 | 6 | 27 | 9.00 | 9.52 | 1.83 |
| simulation | LAA | 3 | Sam Bachman | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 1 | 0 | 4 | 19 | 0.00 | 4.00 | 1.48 |
| simulation | LAA | 4 | Chase Silseth | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 9 | 0.00 | 4.50 | 2.25 |
| simulation | LAA | 5 | Brent Suter | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 1 | 0 | 4 | 19 | 0.00 | 3.44 | 1.31 |
| simulation | LAA | 6 | Ryan Zeferjahn | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 7 | 0.00 | 6.38 | 1.42 |
| simulation | LAA | 7 | Walbert Urena | Reliever | 1.0 | 1 | 0 | 0 | 0 | 0 | 0 | 4 | 14 | 0.00 | ||
| simulation | CHW | 1 | Erick Fedde | Starter | 6.0 | 5 | 1 | 1 | 1 | 4 | 0 | 24 | 96 | 1.50 | 3.54 | 1.18 |
| simulation | CHW | 2 | Jordan Leasure | Middle Reliever | 1.0 | 1 | 1 | 0 | 1 | 2 | 0 | 5 | 30 | 0.00 | 4.34 | 1.08 |
| simulation | CHW | 3 | Grant Taylor | Middle Reliever | 1.0 | 1 | 1 | 0 | 0 | 1 | 0 | 4 | 15 | 0.00 | 1.48 | 1.31 |
| simulation | CHW | 4 | Bryan Hudson | Middle Reliever | 1.0 | 0 | 1 | 1 | 1 | 0 | 0 | 4 | 15 | 9.00 | 1.84 | 1.94 |
Pitch count summary
| team | pitcher | role | IP | R | H | BB | SO | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|
| LAA | Yusei Kikuchi | Starter | 2.0 | 6 | 6 | 3 | 1 | 15 | 62 |
| LAA | Drew Pomeranz | Middle Reliever | 1.0 | 3 | 3 | 0 | 1 | 6 | 27 |
| LAA | Sam Bachman | Middle Reliever | 1.0 | 0 | 0 | 1 | 1 | 4 | 19 |
| LAA | Chase Silseth | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 9 |
| LAA | Brent Suter | Middle Reliever | 1.0 | 0 | 0 | 1 | 1 | 4 | 19 |
| LAA | Ryan Zeferjahn | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 7 |
| LAA | Walbert Urena | Reliever | 1.0 | 0 | 1 | 0 | 0 | 4 | 14 |
| CHW | Erick Fedde | Starter | 6.0 | 1 | 5 | 1 | 4 | 24 | 96 |
| CHW | Jordan Leasure | Middle Reliever | 1.0 | 0 | 1 | 1 | 2 | 5 | 30 |
| CHW | Grant Taylor | Middle Reliever | 1.0 | 0 | 1 | 0 | 1 | 4 | 15 |
| CHW | Bryan Hudson | Middle Reliever | 1.0 | 0 | 0 | 1 | 0 | 4 | 15 |
Audit rule catalog
| rule | status | critical | error | warning | pass | description |
|---|---|---|---|---|---|---|
| BATTING_REALISM | good | 0 | 0 | 0 | 4 | Player/team batting lines obey baseball constraints. |
| BATTING_TOTALS_SUM | good | 0 | 0 | 0 | 4 | Team batting totals equal the sum of player batting lines. |
| BAT_PITCH_BB_MATCH | good | 0 | 0 | 0 | 2 | Batting walks match opposing pitching walks allowed. |
| BAT_PITCH_HR_MATCH | good | 0 | 0 | 0 | 2 | Batting home runs match opposing pitching home runs allowed. |
| BAT_PITCH_H_MATCH | good | 0 | 0 | 0 | 2 | Batting hits match opposing pitching hits allowed. |
| BAT_PITCH_SO_MATCH | good | 0 | 0 | 0 | 2 | Batting strikeouts match opposing pitching strikeouts. |
| CONFIDENCE_RANGE | good | 0 | 0 | 0 | 5 | Confidence values are between 0 and 1. |
| CURRENT_FINALIZED_MATCH_BOX | warning | 0 | 0 | 4 | 0 | Current finalized player totals agree with final simulation box score. |
| CURRENT_LINEUP_SHAPE | good | 0 | 0 | 0 | 2 | Current predicted_performance contains a plausible 9-player lineup. |
| CURRENT_MODEL_ZERO_FALLBACK | good | 0 | 0 | 0 | 2 | Current model payload did not rely too heavily on all-zero model predictions. |
| CURRENT_NAMES_PRESENT | good | 0 | 0 | 0 | 2 | Current predicted_performance has usable player names. |
| CURRENT_PITCHER_DUPLICATION | info | 0 | 0 | 0 | 0 | Pitcher lists duplicated across current sections are detected and reconciled. |
| CURRENT_SCORE_MATCHES_SIM | good | 0 | 0 | 0 | 1 | game.predicted_runs matches scoring_simulation.final_score. |
| DATE_PARSE | good | 0 | 0 | 0 | 1 | Game date can be parsed as an ISO date. |
| FILENAME_GAME_ID_MATCH | good | 0 | 0 | 0 | 1 | Filename and game_id identify the same game. |
| FILENAME_TEAM_MATCH | good | 0 | 0 | 0 | 1 | Filename teams match the teams inside the JSON. |
| GAME_SUMMARY_MATCH | good | 0 | 0 | 0 | 1 | game_summary text agrees with final score. |
| H2H_DATA_LEAKAGE | good | 0 | 0 | 0 | 1 | Head-to-head history does not include same-day or future games in pregame mode. |
| INNINGS_COUNT | good | 0 | 0 | 0 | 1 | Inning count is valid for MLB. |
| INNING_OUTS | good | 0 | 0 | 0 | 1 | Each played half inning has valid outs. |
| INNING_PLAY_SUMS | good | 0 | 0 | 0 | 1 | Detailed plays agree with inning runs, hits, outs, and pitches. |
| INNING_SEQUENCE | good | 0 | 0 | 0 | 1 | Innings are sequential and unique. |
| INNING_TOTAL_HITS | good | 0 | 0 | 0 | 1 | Inning hits sum to batting team hits. |
| INNING_TOTAL_RUNS | critical | 1 | 0 | 0 | 0 | Inning runs sum to final score. |
| LOW_SCORE_ANALYSIS | good | 0 | 0 | 0 | 3 | Low-score probability factors are valid and directionally consistent. |
| PA_BF_MATCH | good | 0 | 0 | 0 | 2 | Team plate appearances match opposing batters faced. |
| PITCHING_REALISM | good | 0 | 0 | 0 | 4 | Pitcher/team pitching lines obey baseball constraints. |
| PITCHING_TOTALS_SUM | good | 0 | 0 | 0 | 8 | Team pitching totals equal the sum of pitcher lines. |
| PITCH_COUNT_PITCHER_MATCH | warning | 0 | 0 | 5 | 0 | Pitch count summary pitcher rows agree with pitching box score. |
| PITCH_COUNT_TOTAL_MATCH | good | 0 | 0 | 0 | 4 | Pitch count summary totals match team pitching totals. |
| PITCH_DETAIL_SANITY | good | 0 | 0 | 0 | 1 | Pitch-by-pitch details have plausible values. |
| PREDICTION_COMPARISON_MATCH | good | 0 | 0 | 0 | 3 | prediction_comparison scores agree with target/final result. |
| RECENT_FORM_RANGE | good | 0 | 0 | 0 | 4 | Recent-form metrics are within valid numeric ranges. |
| RECONCILIATION_PROPAGATION | critical | 1 | 0 | 0 | 0 | When score_target_reconciliation is used, all final-facing sections are regenerated from the reconciled score. |
| REPORT_COMPLETE | good | 0 | 0 | 0 | 1 | Report includes every audit result in the all-findings table. |
| REPORT_CSV_EXPORT | not triggered | 0 | 0 | 0 | 0 | Optional CSV exports were written for summary and problem rows. |
| RUNS_MATCH_FINAL | good | 0 | 0 | 0 | 2 | Batting/pitching runs agree with final score. |
| SCHEMA_ROOTS_PRESENT | good | 0 | 0 | 0 | 1 | Expected JSON root sections exist and can be audited. |
| SCORE_NO_TIE | good | 0 | 0 | 0 | 1 | Final MLB score has a clear winner. |
| SCORE_STEP_FINAL_MATCH | good | 0 | 0 | 0 | 1 | score_evolution simulation_result matches final score. |
| SCORE_STEP_ORDER | good | 0 | 0 | 0 | 1 | Score evolution contains the expected ordered steps. |
| STARTER_PRESENT | good | 0 | 0 | 0 | 4 | Pitching staff includes a starter or opener when expected. |
| TARGET_SCORE_DRIFT | good | 0 | 0 | 0 | 1 | Final score does not drift too far from enhanced target. |
| TEAM_RECENT_RECORD | warning | 0 | 0 | 2 | 0 | team_recent_performance wins and win_pct agree with games_analyzed. |
| TOTAL_RUNS_MATCH | good | 0 | 0 | 0 | 1 | total_runs equals away + home runs. |
| WINNER_FIELD_MATCH | good | 0 | 0 | 0 | 1 | winner field agrees with the final score. |
20260429_MIA@LAD
20260429_MIA@LAD.json • 2026-04-29
Final simulation is structurally valid with warnings to review. Risk score: 100.
Action summary - what to fix first
| Level | Problem group / fix | Count | Teams | Example |
|---|---|---|---|---|
| WARN | Current payload is not synced to final box score The final simulation box score is treated as the source of truth. Sync game.predicted_performance finalized_stats/pitcher projections after scoring_simulation, or stop comparing that pre-simulation payload as final output. | 0C / 0E / 4W | LAD, MIA | LAD current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=31; H: current=9, sim=7; 2B: current=0, sim=1; BB: current=0, sim=1; SO: current=9, sim=7; HBP: current=0, sim=1). LAD current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=1, sim=5; SO: current=16, sim=10; HR: current=0, sim=1). |
| WARN | Pitch count summary differs by pitcher Pitch-count rows disagree with individual pitching box-score rows. Recalculate pitch_count_summary from the same final pitcher ledger used by box_score.pitching. | 0C / 0E / 2W | MIA | MIA pitch_count row for Calvin Faucher differs from pitching box score: runs_allowed/R: summary=0, box=1. MIA pitch_count row for Sandy Alcantara differs from pitching box score: runs_allowed/R: summary=2, box=1. |
| WARN | team_recent_performance record bug wins and win_pct do not agree. Either calculate wins correctly or derive win_pct directly as wins/games_analyzed. | 0C / 0E / 2W | LAD, MIA | LAD wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. MIA wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. |
| WARN | Data Leakage Review the listed finding and decide whether to fix the data or downgrade the rule. | 0C / 0E / 1W | - | Head-to-head contains same-day/future game rows that should not be available before first pitch: 2026-04-29 MIA@LAD 2-1 |
| WARN | Prediction target vs final simulation drift The inning simulation can vary from ML target, but large drift should be reviewed or explicitly documented as acceptable variance. | 0C / 0E / 1W | - | Final total runs 3 differs from low-score expected_total_runs 9.8 by more than 4. |
Problems table - exact rows
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | LAD | CURRENT_FINALIZED_MATCH_BOX | LAD current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=31; H: current=9, sim=7; 2B: current=0, sim=1; BB: current=0, sim=1; SO: current=9, sim=7; HBP: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | LAD | CURRENT_FINALIZED_MATCH_BOX | LAD current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=1, sim=5; SO: current=16, sim=10; HR: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | MIA | CURRENT_FINALIZED_MATCH_BOX | MIA current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=32; H: current=9, sim=5; 2B: current=0, sim=1; HR: current=0, sim=1; SO: current=9, sim=10). | |||
| WARN | current_vs_final | cross-schema | MIA | CURRENT_FINALIZED_MATCH_BOX | MIA current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=2, sim=7; BB: current=0, sim=1; SO: current=15, sim=7). | |||
| WARN | data_leakage | H2H_DATA_LEAKAGE | Head-to-head contains same-day/future game rows that should not be available before first pitch: 2026-04-29 MIA@LAD 2-1 | Only H2H rows dated before the prediction game date in pregame mode. | ||||
| WARN | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 3 differs from low-score expected_total_runs 9.8 by more than 4. | |||||
| WARN | pitch_count | simulation | MIA | Calvin Faucher | PITCH_COUNT_PITCHER_MATCH | MIA pitch_count row for Calvin Faucher differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | MIA | Sandy Alcantara | PITCH_COUNT_PITCHER_MATCH | MIA pitch_count row for Sandy Alcantara differs from pitching box score: runs_allowed/R: summary=2, box=1. | ||
| WARN | team_recent_performance | current | LAD | TEAM_RECENT_RECORD | LAD wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | MIA | TEAM_RECENT_RECORD | MIA wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. |
All findings - complete audit trail
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | LAD | CURRENT_FINALIZED_MATCH_BOX | LAD current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=31; H: current=9, sim=7; 2B: current=0, sim=1; BB: current=0, sim=1; SO: current=9, sim=7; HBP: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | LAD | CURRENT_FINALIZED_MATCH_BOX | LAD current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=1, sim=5; SO: current=16, sim=10; HR: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | MIA | CURRENT_FINALIZED_MATCH_BOX | MIA current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=32; H: current=9, sim=5; 2B: current=0, sim=1; HR: current=0, sim=1; SO: current=9, sim=10). | |||
| WARN | current_vs_final | cross-schema | MIA | CURRENT_FINALIZED_MATCH_BOX | MIA current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=2, sim=7; BB: current=0, sim=1; SO: current=15, sim=7). | |||
| WARN | data_leakage | H2H_DATA_LEAKAGE | Head-to-head contains same-day/future game rows that should not be available before first pitch: 2026-04-29 MIA@LAD 2-1 | Only H2H rows dated before the prediction game date in pregame mode. | ||||
| WARN | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 3 differs from low-score expected_total_runs 9.8 by more than 4. | |||||
| WARN | pitch_count | simulation | MIA | Calvin Faucher | PITCH_COUNT_PITCHER_MATCH | MIA pitch_count row for Calvin Faucher differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | MIA | Sandy Alcantara | PITCH_COUNT_PITCHER_MATCH | MIA pitch_count row for Sandy Alcantara differs from pitching box score: runs_allowed/R: summary=2, box=1. | ||
| WARN | team_recent_performance | current | LAD | TEAM_RECENT_RECORD | LAD wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | MIA | TEAM_RECENT_RECORD | MIA wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| INFO | current_payload | current | LAD | CURRENT_PITCHER_DUPLICATION | LAD pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | MIA | CURRENT_PITCHER_DUPLICATION | MIA pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. | |||||
| PASS | batting | current | LAD | BATTING_REALISM | current:LAD hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | MIA | BATTING_REALISM | current:MIA hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | LAD | BATTING_REALISM | simulation:LAD hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | MIA | BATTING_REALISM | simulation:MIA hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | LAD | BATTING_TOTALS_SUM | current:LAD batting totals equal summed player lines. | |||
| PASS | batting_totals | current | MIA | BATTING_TOTALS_SUM | current:MIA batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | LAD | BATTING_TOTALS_SUM | simulation:LAD batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | MIA | BATTING_TOTALS_SUM | simulation:MIA batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | LAD | BAT_PITCH_BB_MATCH | simulation:LAD batting walks match MIA pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | LAD | BAT_PITCH_HR_MATCH | simulation:LAD batting home runs match MIA pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | LAD | BAT_PITCH_H_MATCH | simulation:LAD batting hits match MIA pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | LAD | BAT_PITCH_SO_MATCH | simulation:LAD batting strikeouts match MIA pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | LAD | PA_BF_MATCH | simulation:LAD PA=33 matches MIA BF=33. | |||
| PASS | boxscore_crosscheck | simulation | LAD | RUNS_MATCH_FINAL | simulation:LAD runs match final score and opposing pitching runs: 2. | |||
| PASS | boxscore_crosscheck | simulation | MIA | BAT_PITCH_BB_MATCH | simulation:MIA batting walks match LAD pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | MIA | BAT_PITCH_HR_MATCH | simulation:MIA batting home runs match LAD pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | MIA | BAT_PITCH_H_MATCH | simulation:MIA batting hits match LAD pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | MIA | BAT_PITCH_SO_MATCH | simulation:MIA batting strikeouts match LAD pitching: 10. | |||
| PASS | boxscore_crosscheck | simulation | MIA | PA_BF_MATCH | simulation:MIA PA=32 matches LAD BF=32. | |||
| PASS | boxscore_crosscheck | simulation | MIA | RUNS_MATCH_FINAL | simulation:MIA runs match final score and opposing pitching runs: 1. | |||
| PASS | current_payload | current | LAD | CURRENT_LINEUP_SHAPE | LAD current lineup has 9 expected positions. | |||
| PASS | current_payload | current | LAD | CURRENT_MODEL_ZERO_FALLBACK | LAD current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | LAD | CURRENT_NAMES_PRESENT | LAD current hitter names are populated. | |||
| PASS | current_payload | current | MIA | CURRENT_LINEUP_SHAPE | MIA current lineup has 9 expected positions. | |||
| PASS | current_payload | current | MIA | CURRENT_MODEL_ZERO_FALLBACK | MIA current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | MIA | CURRENT_NAMES_PRESENT | MIA current hitter names are populated. | |||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.412. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.588. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.588. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.432/0.900. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_OUTS | Inning 9 home marked not_played with empty stats. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: MIA 5, LAD 7. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: MIA 1 - LAD 2. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_MIA@LAD. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: MIA@LAD. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 135. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 131. | |||||
| PASS | pitch_count | simulation | LAD | PITCH_COUNT_PITCHER_MATCH | LAD pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | LAD | PITCH_COUNT_TOTAL_MATCH | LAD pitch_count_summary total, row sum, and pitching total all match: 131. | |||
| PASS | pitch_count | simulation | MIA | PITCH_COUNT_TOTAL_MATCH | MIA pitch_count_summary total, row sum, and pitching total all match: 135. | |||
| PASS | pitching | current | LAD | PITCHING_REALISM | current:LAD pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | LAD | STARTER_PRESENT | current:LAD includes a starter/opener role. | |||
| PASS | pitching | current | MIA | PITCHING_REALISM | current:MIA pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | MIA | STARTER_PRESENT | current:MIA includes a starter/opener role. | |||
| PASS | pitching | simulation | LAD | PITCHING_REALISM | simulation:LAD pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | LAD | STARTER_PRESENT | simulation:LAD includes a starter/opener role. | |||
| PASS | pitching | simulation | MIA | PITCHING_REALISM | simulation:MIA pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | MIA | STARTER_PRESENT | simulation:MIA includes a starter/opener role. | |||
| PASS | pitching_totals | current | LAD | PITCHING_TOTALS_SUM | current:LAD pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | LAD | PITCHING_TOTALS_SUM | current:LAD pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | MIA | PITCHING_TOTALS_SUM | current:MIA pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | current | MIA | PITCHING_TOTALS_SUM | current:MIA pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | LAD | PITCHING_TOTALS_SUM | simulation:LAD pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | LAD | PITCHING_TOTALS_SUM | simulation:LAD pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | MIA | PITCHING_TOTALS_SUM | simulation:MIA pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | simulation | MIA | PITCHING_TOTALS_SUM | simulation:MIA pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: MIA 2 - 3 LAD. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: MIA 1 - 2 LAD. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: LAD wins 2-1. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.588. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 5/10 (0.500). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 5/10 (0.500). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: LAD wins 2-1. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: LAD wins 1-2. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 1-2. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 2-3, final 1-2 (delta 2). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 3. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: LAD wins 2-1. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | LAD | RECENT_FORM_RANGE | LAD recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | MIA | RECENT_FORM_RANGE | MIA recent hitting/pitching rates are in valid ranges. |
Passed checks
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| PASS | batting | current | LAD | BATTING_REALISM | current:LAD hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | MIA | BATTING_REALISM | current:MIA hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | LAD | BATTING_REALISM | simulation:LAD hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | MIA | BATTING_REALISM | simulation:MIA hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | LAD | BATTING_TOTALS_SUM | current:LAD batting totals equal summed player lines. | |||
| PASS | batting_totals | current | MIA | BATTING_TOTALS_SUM | current:MIA batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | LAD | BATTING_TOTALS_SUM | simulation:LAD batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | MIA | BATTING_TOTALS_SUM | simulation:MIA batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | LAD | BAT_PITCH_BB_MATCH | simulation:LAD batting walks match MIA pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | LAD | BAT_PITCH_HR_MATCH | simulation:LAD batting home runs match MIA pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | LAD | BAT_PITCH_H_MATCH | simulation:LAD batting hits match MIA pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | LAD | BAT_PITCH_SO_MATCH | simulation:LAD batting strikeouts match MIA pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | LAD | PA_BF_MATCH | simulation:LAD PA=33 matches MIA BF=33. | |||
| PASS | boxscore_crosscheck | simulation | LAD | RUNS_MATCH_FINAL | simulation:LAD runs match final score and opposing pitching runs: 2. | |||
| PASS | boxscore_crosscheck | simulation | MIA | BAT_PITCH_BB_MATCH | simulation:MIA batting walks match LAD pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | MIA | BAT_PITCH_HR_MATCH | simulation:MIA batting home runs match LAD pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | MIA | BAT_PITCH_H_MATCH | simulation:MIA batting hits match LAD pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | MIA | BAT_PITCH_SO_MATCH | simulation:MIA batting strikeouts match LAD pitching: 10. | |||
| PASS | boxscore_crosscheck | simulation | MIA | PA_BF_MATCH | simulation:MIA PA=32 matches LAD BF=32. | |||
| PASS | boxscore_crosscheck | simulation | MIA | RUNS_MATCH_FINAL | simulation:MIA runs match final score and opposing pitching runs: 1. | |||
| PASS | current_payload | current | LAD | CURRENT_LINEUP_SHAPE | LAD current lineup has 9 expected positions. | |||
| PASS | current_payload | current | LAD | CURRENT_MODEL_ZERO_FALLBACK | LAD current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | LAD | CURRENT_NAMES_PRESENT | LAD current hitter names are populated. | |||
| PASS | current_payload | current | MIA | CURRENT_LINEUP_SHAPE | MIA current lineup has 9 expected positions. | |||
| PASS | current_payload | current | MIA | CURRENT_MODEL_ZERO_FALLBACK | MIA current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | MIA | CURRENT_NAMES_PRESENT | MIA current hitter names are populated. | |||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.412. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.588. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.588. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.432/0.900. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_OUTS | Inning 9 home marked not_played with empty stats. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: MIA 5, LAD 7. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: MIA 1 - LAD 2. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_MIA@LAD. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: MIA@LAD. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 135. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 131. | |||||
| PASS | pitch_count | simulation | LAD | PITCH_COUNT_PITCHER_MATCH | LAD pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | LAD | PITCH_COUNT_TOTAL_MATCH | LAD pitch_count_summary total, row sum, and pitching total all match: 131. | |||
| PASS | pitch_count | simulation | MIA | PITCH_COUNT_TOTAL_MATCH | MIA pitch_count_summary total, row sum, and pitching total all match: 135. | |||
| PASS | pitching | current | LAD | PITCHING_REALISM | current:LAD pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | LAD | STARTER_PRESENT | current:LAD includes a starter/opener role. | |||
| PASS | pitching | current | MIA | PITCHING_REALISM | current:MIA pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | MIA | STARTER_PRESENT | current:MIA includes a starter/opener role. | |||
| PASS | pitching | simulation | LAD | PITCHING_REALISM | simulation:LAD pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | LAD | STARTER_PRESENT | simulation:LAD includes a starter/opener role. | |||
| PASS | pitching | simulation | MIA | PITCHING_REALISM | simulation:MIA pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | MIA | STARTER_PRESENT | simulation:MIA includes a starter/opener role. | |||
| PASS | pitching_totals | current | LAD | PITCHING_TOTALS_SUM | current:LAD pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | LAD | PITCHING_TOTALS_SUM | current:LAD pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | MIA | PITCHING_TOTALS_SUM | current:MIA pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | current | MIA | PITCHING_TOTALS_SUM | current:MIA pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | LAD | PITCHING_TOTALS_SUM | simulation:LAD pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | LAD | PITCHING_TOTALS_SUM | simulation:LAD pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | MIA | PITCHING_TOTALS_SUM | simulation:MIA pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | simulation | MIA | PITCHING_TOTALS_SUM | simulation:MIA pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: MIA 2 - 3 LAD. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: MIA 1 - 2 LAD. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: LAD wins 2-1. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.588. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 5/10 (0.500). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 5/10 (0.500). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: LAD wins 2-1. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: LAD wins 1-2. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 1-2. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 2-3, final 1-2 (delta 2). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 3. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: LAD wins 2-1. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | LAD | RECENT_FORM_RANGE | LAD recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | MIA | RECENT_FORM_RANGE | MIA recent hitting/pitching rates are in valid ranges. |
Info/context findings
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| INFO | current_payload | current | LAD | CURRENT_PITCHER_DUPLICATION | LAD pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | MIA | CURRENT_PITCHER_DUPLICATION | MIA pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
Score evolution
| step | away_runs | home_runs | confidence | description |
|---|---|---|---|---|
| historical_ml | 3.8466947078704834 | 4.7660040855407715 | Base ML historical model prediction | |
| variance_applied | 4 | 5 | Random variance applied (0.9-1.1) | |
| enhanced_prediction | 2 | 3 | 0.610 | Enhanced ML with recent form, H2H, low-score analysis |
| capped_target | 2 | 3 | Capped at max 12 realistic runs | |
| simulation_result | 1 | 2 | Final inning-by-inning simulation result |
Inning-by-inning linescore
| team | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | R | H |
|---|---|---|---|---|---|---|---|---|---|---|---|
| MIA | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 5 |
| LAD | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 7 |
Team totals - current + final simulation
| src | team | type | AB | H | 2B | 3B | HR | RBI | R | BB | SO | SF | HBP | SB | CS | IP | ER | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | MIA | batting | 29 | 9 | 0 | 0 | 0 | 1 | 1 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | MIA | pitching | 2 | 0 | 2 | 0 | 15 | 8.0 | 2 | 0 | 0 | ||||||||
| current | LAD | batting | 28 | 9 | 0 | 0 | 0 | 2 | 2 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | LAD | pitching | 1 | 0 | 1 | 0 | 16 | 9.0 | 1 | 0 | 0 | ||||||||
| simulation | MIA | batting | 32 | 5 | 1 | 0 | 1 | 1 | 1 | 0 | 10 | 0 | 0 | ||||||
| simulation | MIA | pitching | 7 | 0 | 2 | 1 | 7 | 8.0 | 2 | 33 | 135 | ||||||||
| simulation | LAD | batting | 31 | 7 | 1 | 0 | 0 | 2 | 2 | 1 | 7 | 0 | 1 | ||||||
| simulation | LAD | pitching | 5 | 1 | 1 | 0 | 10 | 9.0 | 1 | 32 | 131 |
Batting lines - current + final simulation
| src | team | order | pos | name | AB | H | 2B | 3B | HR | R | RBI | BB | SO | HBP | AVG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | MIA | SS | Otto Lopez | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 | |
| current | MIA | 2B | Xavier Edwards | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | MIA | RF | Owen Caissie | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | MIA | 3B | Graham Pauley | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | MIA | DH | Agustín Ramírez | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | MIA | CF | Jakob Marsee | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | MIA | C | Liam Hicks | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | MIA | 1B | Connor Norby | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | MIA | LF | Kyle Stowers | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 | |
| current | LAD | RF | Kyle Tucker | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | LAD | DH | Shohei Ohtani | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | LAD | CF | Andy Pages | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | LAD | LF | Teoscar Hernández | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | LAD | 1B | Freddie Freeman | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 | |
| current | LAD | C | Will Smith | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | LAD | 3B | Max Muncy | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | LAD | 2B | Alex Freeland | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | LAD | SS | Hyeseong Kim | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| simulation | MIA | 1 | CF | Jakob Marsee | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.000 |
| simulation | MIA | 2 | LF | Kyle Stowers | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 |
| simulation | MIA | 3 | SS | Otto Lopez | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0.000 |
| simulation | MIA | 4 | 2B | Xavier Edwards | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | MIA | 5 | C | Liam Hicks | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | MIA | 6 | DH | Agustín Ramírez | 3 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0.333 |
| simulation | MIA | 7 | RF | Owen Caissie | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.333 |
| simulation | MIA | 8 | 1B | Connor Norby | 3 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.333 |
| simulation | MIA | 9 | 3B | Graham Pauley | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.333 |
| simulation | LAD | 1 | DH | Shohei Ohtani | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0.000 |
| simulation | LAD | 2 | 1B | Freddie Freeman | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 2 | 0 | 0.000 |
| simulation | LAD | 3 | C | Will Smith | 4 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.500 |
| simulation | LAD | 4 | RF | Kyle Tucker | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0.250 |
| simulation | LAD | 5 | LF | Teoscar Hernández | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 |
| simulation | LAD | 6 | 3B | Max Muncy | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.250 |
| simulation | LAD | 7 | CF | Andy Pages | 3 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 |
| simulation | LAD | 8 | SS | Hyeseong Kim | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | LAD | 9 | 2B | Alex Freeland | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.333 |
Pitching lines - current + final simulation
| src | team | order | name | role | IP | H | R | ER | BB | SO | HR | BF | Pitches | sim_ERA | season_ERA | season_WHIP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | MIA | 1 | Sandy Alcantara | Starter | 4.1 | 1 | 1 | 1 | 0 | 6 | 0 | 0 | 0 | 2.08 | 3.07 | 1.12 |
| current | MIA | 2 | John King | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 0.89 | 0.69 |
| current | MIA | 3 | Tyler Phillips | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 4 | 0 | 0 | 0 | 0.00 | 1.55 | 1.44 |
| current | MIA | 4 | Calvin Faucher | Middle Reliever | 1.0 | 1 | 1 | 1 | 0 | 3 | 0 | 0 | 0 | 9.00 | 6.28 | 1.98 |
| current | MIA | 5 | Andrew Nardi | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 7.33 | 1.98 | |
| current | MIA | 6 | Anthony Bender | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6.85 | 2.07 | |
| current | LAD | 1 | Tyler Glasnow | Starter | 4.1 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0.00 | 2.45 | 0.70 |
| current | LAD | 2 | Alex Vesia | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0.00 | 1.91 | 0.96 |
| current | LAD | 3 | Jack Dreyer | Middle Reliever | 1.1 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 6.75 | 3.88 | 1.12 |
| current | LAD | 4 | Blake Treinen | Middle Reliever | 0.2 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 1.20 | 1.33 |
| current | LAD | 5 | Tanner Scott | Middle Reliever | 0.2 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 2.18 | 0.81 |
| current | LAD | 6 | Will Klein | Middle Reliever | 0.2 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 2.62 | 1.36 |
| simulation | MIA | 1 | Sandy Alcantara | Starter | 5.0 | 5 | 1 | 1 | 1 | 4 | 0 | 22 | 90 | 1.80 | 3.07 | 1.12 |
| simulation | MIA | 2 | Tyler Phillips | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 13 | 0.00 | 1.55 | 1.44 |
| simulation | MIA | 3 | John King | Middle Reliever | 1.0 | 1 | 0 | 0 | 0 | 2 | 0 | 4 | 16 | 0.00 | 0.89 | 0.69 |
| simulation | MIA | 4 | Calvin Faucher | Middle Reliever | 1.0 | 1 | 1 | 1 | 0 | 0 | 0 | 4 | 16 | 9.00 | 6.28 | 1.98 |
| simulation | LAD | 1 | Tyler Glasnow | Starter | 5.0 | 4 | 1 | 1 | 0 | 6 | 1 | 19 | 81 | 1.80 | 2.45 | 0.70 |
| simulation | LAD | 2 | Tanner Scott | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 0 | 3 | 12 | 0.00 | 2.18 | 0.81 |
| simulation | LAD | 3 | Alex Vesia | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 14 | 0.00 | 1.91 | 0.96 |
| simulation | LAD | 4 | Blake Treinen | Middle Reliever | 1.0 | 1 | 0 | 0 | 0 | 0 | 0 | 4 | 13 | 0.00 | 1.20 | 1.33 |
| simulation | LAD | 5 | Will Klein | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 11 | 0.00 | 2.62 | 1.36 |
Pitch count summary
| team | pitcher | role | IP | R | H | BB | SO | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|
| MIA | Sandy Alcantara | Starter | 5.0 | 2 | 5 | 1 | 4 | 22 | 90 |
| MIA | Tyler Phillips | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 13 |
| MIA | John King | Middle Reliever | 1.0 | 0 | 1 | 0 | 2 | 4 | 16 |
| MIA | Calvin Faucher | Middle Reliever | 1.0 | 0 | 1 | 0 | 0 | 4 | 16 |
| LAD | Tyler Glasnow | Starter | 5.0 | 1 | 4 | 0 | 6 | 19 | 81 |
| LAD | Tanner Scott | Middle Reliever | 1.0 | 0 | 0 | 0 | 3 | 3 | 12 |
| LAD | Alex Vesia | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 14 |
| LAD | Blake Treinen | Middle Reliever | 1.0 | 0 | 1 | 0 | 0 | 4 | 13 |
| LAD | Will Klein | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 11 |
Audit rule catalog
| rule | status | critical | error | warning | pass | description |
|---|---|---|---|---|---|---|
| BATTING_REALISM | good | 0 | 0 | 0 | 4 | Player/team batting lines obey baseball constraints. |
| BATTING_TOTALS_SUM | good | 0 | 0 | 0 | 4 | Team batting totals equal the sum of player batting lines. |
| BAT_PITCH_BB_MATCH | good | 0 | 0 | 0 | 2 | Batting walks match opposing pitching walks allowed. |
| BAT_PITCH_HR_MATCH | good | 0 | 0 | 0 | 2 | Batting home runs match opposing pitching home runs allowed. |
| BAT_PITCH_H_MATCH | good | 0 | 0 | 0 | 2 | Batting hits match opposing pitching hits allowed. |
| BAT_PITCH_SO_MATCH | good | 0 | 0 | 0 | 2 | Batting strikeouts match opposing pitching strikeouts. |
| CONFIDENCE_RANGE | good | 0 | 0 | 0 | 5 | Confidence values are between 0 and 1. |
| CURRENT_FINALIZED_MATCH_BOX | warning | 0 | 0 | 4 | 0 | Current finalized player totals agree with final simulation box score. |
| CURRENT_LINEUP_SHAPE | good | 0 | 0 | 0 | 2 | Current predicted_performance contains a plausible 9-player lineup. |
| CURRENT_MODEL_ZERO_FALLBACK | good | 0 | 0 | 0 | 2 | Current model payload did not rely too heavily on all-zero model predictions. |
| CURRENT_NAMES_PRESENT | good | 0 | 0 | 0 | 2 | Current predicted_performance has usable player names. |
| CURRENT_PITCHER_DUPLICATION | info | 0 | 0 | 0 | 0 | Pitcher lists duplicated across current sections are detected and reconciled. |
| CURRENT_SCORE_MATCHES_SIM | good | 0 | 0 | 0 | 1 | game.predicted_runs matches scoring_simulation.final_score. |
| DATE_PARSE | good | 0 | 0 | 0 | 1 | Game date can be parsed as an ISO date. |
| FILENAME_GAME_ID_MATCH | good | 0 | 0 | 0 | 1 | Filename and game_id identify the same game. |
| FILENAME_TEAM_MATCH | good | 0 | 0 | 0 | 1 | Filename teams match the teams inside the JSON. |
| GAME_SUMMARY_MATCH | good | 0 | 0 | 0 | 1 | game_summary text agrees with final score. |
| H2H_DATA_LEAKAGE | warning | 0 | 0 | 1 | 0 | Head-to-head history does not include same-day or future games in pregame mode. |
| INNINGS_COUNT | good | 0 | 0 | 0 | 1 | Inning count is valid for MLB. |
| INNING_OUTS | good | 0 | 0 | 0 | 1 | Each played half inning has valid outs. |
| INNING_PLAY_SUMS | good | 0 | 0 | 0 | 1 | Detailed plays agree with inning runs, hits, outs, and pitches. |
| INNING_SEQUENCE | good | 0 | 0 | 0 | 1 | Innings are sequential and unique. |
| INNING_TOTAL_HITS | good | 0 | 0 | 0 | 1 | Inning hits sum to batting team hits. |
| INNING_TOTAL_RUNS | good | 0 | 0 | 0 | 1 | Inning runs sum to final score. |
| LOW_SCORE_ANALYSIS | warning | 0 | 0 | 1 | 2 | Low-score probability factors are valid and directionally consistent. |
| PA_BF_MATCH | good | 0 | 0 | 0 | 2 | Team plate appearances match opposing batters faced. |
| PITCHING_REALISM | good | 0 | 0 | 0 | 4 | Pitcher/team pitching lines obey baseball constraints. |
| PITCHING_TOTALS_SUM | good | 0 | 0 | 0 | 8 | Team pitching totals equal the sum of pitcher lines. |
| PITCH_COUNT_PITCHER_MATCH | warning | 0 | 0 | 2 | 1 | Pitch count summary pitcher rows agree with pitching box score. |
| PITCH_COUNT_TOTAL_MATCH | good | 0 | 0 | 0 | 4 | Pitch count summary totals match team pitching totals. |
| PITCH_DETAIL_SANITY | good | 0 | 0 | 0 | 1 | Pitch-by-pitch details have plausible values. |
| PREDICTION_COMPARISON_MATCH | good | 0 | 0 | 0 | 3 | prediction_comparison scores agree with target/final result. |
| RECENT_FORM_RANGE | good | 0 | 0 | 0 | 4 | Recent-form metrics are within valid numeric ranges. |
| RECONCILIATION_PROPAGATION | info | 0 | 0 | 0 | 0 | When score_target_reconciliation is used, all final-facing sections are regenerated from the reconciled score. |
| REPORT_COMPLETE | good | 0 | 0 | 0 | 1 | Report includes every audit result in the all-findings table. |
| REPORT_CSV_EXPORT | not triggered | 0 | 0 | 0 | 0 | Optional CSV exports were written for summary and problem rows. |
| RUNS_MATCH_FINAL | good | 0 | 0 | 0 | 2 | Batting/pitching runs agree with final score. |
| SCHEMA_ROOTS_PRESENT | good | 0 | 0 | 0 | 1 | Expected JSON root sections exist and can be audited. |
| SCORE_NO_TIE | good | 0 | 0 | 0 | 1 | Final MLB score has a clear winner. |
| SCORE_STEP_FINAL_MATCH | good | 0 | 0 | 0 | 1 | score_evolution simulation_result matches final score. |
| SCORE_STEP_ORDER | good | 0 | 0 | 0 | 1 | Score evolution contains the expected ordered steps. |
| STARTER_PRESENT | good | 0 | 0 | 0 | 4 | Pitching staff includes a starter or opener when expected. |
| TARGET_SCORE_DRIFT | good | 0 | 0 | 0 | 1 | Final score does not drift too far from enhanced target. |
| TEAM_RECENT_RECORD | warning | 0 | 0 | 2 | 0 | team_recent_performance wins and win_pct agree with games_analyzed. |
| TOTAL_RUNS_MATCH | good | 0 | 0 | 0 | 1 | total_runs equals away + home runs. |
| WINNER_FIELD_MATCH | good | 0 | 0 | 0 | 1 | winner field agrees with the final score. |
20260429_NYY@TEX
20260429_NYY@TEX.json • 2026-04-29
Final simulation needs review: critical box-score inconsistencies remain. Risk score: 350.
Action summary - what to fix first
| Level | Problem group / fix | Count | Teams | Example |
|---|---|---|---|---|
| CRITICAL | Innings Review the listed finding and decide whether to fix the data or downgrade the rule. | 1C / 0E / 0W | - | Inning runs 8-9 do not match final score 6-1. |
| CRITICAL | Score Reconciliation Review the listed finding and decide whether to fix the data or downgrade the rule. | 1C / 0E / 0W | - | score_target_reconciliation was used, but not all final-facing sections were regenerated: inning_by_inning=8-9 final=6-1 |
| ERROR | Batting Review the listed finding and decide whether to fix the data or downgrade the rule. | 0C / 1E / 0W | TEX | simulation:TEX HR=2 exceeds RBI=1; every HR creates at least one RBI unless special scoring data is absent. |
| WARN | Current payload is not synced to final box score The final simulation box score is treated as the source of truth. Sync game.predicted_performance finalized_stats/pitcher projections after scoring_simulation, or stop comparing that pre-simulation payload as final output. | 0C / 0E / 4W | NYY, TEX | NYY current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=50; H: current=9, sim=11; 2B: current=0, sim=2; HR: current=0, sim=2; RBI: current=4, sim=6; BB: current=0, sim=7; SO: current=9, sim=11). NYY current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=1, sim=11; BB: current=0, sim=8; SO: current=13, sim=12; HR: current=0, sim=2). |
| WARN | Pitch count summary differs by pitcher Pitch-count rows disagree with individual pitching box-score rows. Recalculate pitch_count_summary from the same final pitcher ledger used by box_score.pitching. | 0C / 0E / 4W | NYY, TEX | NYY pitch_count row for David Bednar differs from pitching box score: runs_allowed/R: summary=2, box=0. NYY pitch_count row for Elmer Rodriguez-Cruz differs from pitching box score: runs_allowed/R: summary=3, box=1. |
| WARN | team_recent_performance record bug wins and win_pct do not agree. Either calculate wins correctly or derive win_pct directly as wins/games_analyzed. | 0C / 0E / 2W | NYY, TEX | NYY wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. TEX wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. |
| WARN | Data Leakage Review the listed finding and decide whether to fix the data or downgrade the rule. | 0C / 0E / 1W | - | Head-to-head contains same-day/future game rows that should not be available before first pitch: 2026-04-29 NYY@TEX 3-2 |
Problems table - exact rows
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| CRITICAL | innings | INNING_TOTAL_RUNS | Inning runs 8-9 do not match final score 6-1. | |||||
| CRITICAL | score_reconciliation | RECONCILIATION_PROPAGATION | score_target_reconciliation was used, but not all final-facing sections were regenerated: inning_by_inning=8-9 final=6-1 | All final-facing sections must use the reconciled score. | ||||
| ERROR | batting | simulation | TEX | BATTING_REALISM | simulation:TEX HR=2 exceeds RBI=1; every HR creates at least one RBI unless special scoring data is absent. | |||
| WARN | current_vs_final | cross-schema | NYY | CURRENT_FINALIZED_MATCH_BOX | NYY current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=50; H: current=9, sim=11; 2B: current=0, sim=2; HR: current=0, sim=2; RBI: current=4, sim=6; BB: current=0, sim=7; SO: current=9, sim=11). | |||
| WARN | current_vs_final | cross-schema | NYY | CURRENT_FINALIZED_MATCH_BOX | NYY current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=1, sim=11; BB: current=0, sim=8; SO: current=13, sim=12; HR: current=0, sim=2). | |||
| WARN | current_vs_final | cross-schema | TEX | CURRENT_FINALIZED_MATCH_BOX | TEX current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=50; H: current=9, sim=11; 2B: current=0, sim=4; HR: current=0, sim=2; BB: current=1, sim=8; SO: current=9, sim=12). | |||
| WARN | current_vs_final | cross-schema | TEX | CURRENT_FINALIZED_MATCH_BOX | TEX current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=4, sim=11; R: current=4, sim=6; ER: current=4, sim=6; BB: current=0, sim=7; SO: current=9, sim=11; HR: current=0, sim=2). | |||
| WARN | data_leakage | H2H_DATA_LEAKAGE | Head-to-head contains same-day/future game rows that should not be available before first pitch: 2026-04-29 NYY@TEX 3-2 | Only H2H rows dated before the prediction game date in pregame mode. | ||||
| WARN | pitch_count | simulation | NYY | David Bednar | PITCH_COUNT_PITCHER_MATCH | NYY pitch_count row for David Bednar differs from pitching box score: runs_allowed/R: summary=2, box=0. | ||
| WARN | pitch_count | simulation | NYY | Elmer Rodriguez-Cruz | PITCH_COUNT_PITCHER_MATCH | NYY pitch_count row for Elmer Rodriguez-Cruz differs from pitching box score: runs_allowed/R: summary=3, box=1. | ||
| WARN | pitch_count | simulation | NYY | Ryan Yarbrough | PITCH_COUNT_PITCHER_MATCH | NYY pitch_count row for Ryan Yarbrough differs from pitching box score: runs_allowed/R: summary=4, box=0. | ||
| WARN | pitch_count | simulation | TEX | Cal Quantrill | PITCH_COUNT_PITCHER_MATCH | TEX pitch_count row for Cal Quantrill differs from pitching box score: runs_allowed/R: summary=3, box=1. | ||
| WARN | team_recent_performance | current | NYY | TEAM_RECENT_RECORD | NYY wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | TEX | TEAM_RECENT_RECORD | TEX wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. |
All findings - complete audit trail
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| CRITICAL | innings | INNING_TOTAL_RUNS | Inning runs 8-9 do not match final score 6-1. | |||||
| CRITICAL | score_reconciliation | RECONCILIATION_PROPAGATION | score_target_reconciliation was used, but not all final-facing sections were regenerated: inning_by_inning=8-9 final=6-1 | All final-facing sections must use the reconciled score. | ||||
| ERROR | batting | simulation | TEX | BATTING_REALISM | simulation:TEX HR=2 exceeds RBI=1; every HR creates at least one RBI unless special scoring data is absent. | |||
| WARN | current_vs_final | cross-schema | NYY | CURRENT_FINALIZED_MATCH_BOX | NYY current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=50; H: current=9, sim=11; 2B: current=0, sim=2; HR: current=0, sim=2; RBI: current=4, sim=6; BB: current=0, sim=7; SO: current=9, sim=11). | |||
| WARN | current_vs_final | cross-schema | NYY | CURRENT_FINALIZED_MATCH_BOX | NYY current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=1, sim=11; BB: current=0, sim=8; SO: current=13, sim=12; HR: current=0, sim=2). | |||
| WARN | current_vs_final | cross-schema | TEX | CURRENT_FINALIZED_MATCH_BOX | TEX current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=50; H: current=9, sim=11; 2B: current=0, sim=4; HR: current=0, sim=2; BB: current=1, sim=8; SO: current=9, sim=12). | |||
| WARN | current_vs_final | cross-schema | TEX | CURRENT_FINALIZED_MATCH_BOX | TEX current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=4, sim=11; R: current=4, sim=6; ER: current=4, sim=6; BB: current=0, sim=7; SO: current=9, sim=11; HR: current=0, sim=2). | |||
| WARN | data_leakage | H2H_DATA_LEAKAGE | Head-to-head contains same-day/future game rows that should not be available before first pitch: 2026-04-29 NYY@TEX 3-2 | Only H2H rows dated before the prediction game date in pregame mode. | ||||
| WARN | pitch_count | simulation | NYY | David Bednar | PITCH_COUNT_PITCHER_MATCH | NYY pitch_count row for David Bednar differs from pitching box score: runs_allowed/R: summary=2, box=0. | ||
| WARN | pitch_count | simulation | NYY | Elmer Rodriguez-Cruz | PITCH_COUNT_PITCHER_MATCH | NYY pitch_count row for Elmer Rodriguez-Cruz differs from pitching box score: runs_allowed/R: summary=3, box=1. | ||
| WARN | pitch_count | simulation | NYY | Ryan Yarbrough | PITCH_COUNT_PITCHER_MATCH | NYY pitch_count row for Ryan Yarbrough differs from pitching box score: runs_allowed/R: summary=4, box=0. | ||
| WARN | pitch_count | simulation | TEX | Cal Quantrill | PITCH_COUNT_PITCHER_MATCH | TEX pitch_count row for Cal Quantrill differs from pitching box score: runs_allowed/R: summary=3, box=1. | ||
| WARN | team_recent_performance | current | NYY | TEAM_RECENT_RECORD | NYY wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | TEX | TEAM_RECENT_RECORD | TEX wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| INFO | current_payload | current | NYY | CURRENT_PITCHER_DUPLICATION | NYY pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | TEX | CURRENT_PITCHER_DUPLICATION | TEX pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| PASS | batting | current | NYY | BATTING_REALISM | current:NYY hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | TEX | BATTING_REALISM | current:TEX hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | NYY | BATTING_REALISM | simulation:NYY hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | TEX | BATTING_REALISM | simulation:TEX hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | NYY | BATTING_TOTALS_SUM | current:NYY batting totals equal summed player lines. | |||
| PASS | batting_totals | current | TEX | BATTING_TOTALS_SUM | current:TEX batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | NYY | BATTING_TOTALS_SUM | simulation:NYY batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | TEX | BATTING_TOTALS_SUM | simulation:TEX batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | NYY | BAT_PITCH_BB_MATCH | simulation:NYY batting walks match TEX pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | NYY | BAT_PITCH_HR_MATCH | simulation:NYY batting home runs match TEX pitching: 2. | |||
| PASS | boxscore_crosscheck | simulation | NYY | BAT_PITCH_H_MATCH | simulation:NYY batting hits match TEX pitching: 11. | |||
| PASS | boxscore_crosscheck | simulation | NYY | BAT_PITCH_SO_MATCH | simulation:NYY batting strikeouts match TEX pitching: 11. | |||
| PASS | boxscore_crosscheck | simulation | NYY | PA_BF_MATCH | simulation:NYY PA=57 matches TEX BF=57. | |||
| PASS | boxscore_crosscheck | simulation | NYY | RUNS_MATCH_FINAL | simulation:NYY runs match final score and opposing pitching runs: 6. | |||
| PASS | boxscore_crosscheck | simulation | TEX | BAT_PITCH_BB_MATCH | simulation:TEX batting walks match NYY pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | TEX | BAT_PITCH_HR_MATCH | simulation:TEX batting home runs match NYY pitching: 2. | |||
| PASS | boxscore_crosscheck | simulation | TEX | BAT_PITCH_H_MATCH | simulation:TEX batting hits match NYY pitching: 11. | |||
| PASS | boxscore_crosscheck | simulation | TEX | BAT_PITCH_SO_MATCH | simulation:TEX batting strikeouts match NYY pitching: 12. | |||
| PASS | boxscore_crosscheck | simulation | TEX | PA_BF_MATCH | simulation:TEX PA=58 matches NYY BF=58. | |||
| PASS | boxscore_crosscheck | simulation | TEX | RUNS_MATCH_FINAL | simulation:TEX runs match final score and opposing pitching runs: 1. | |||
| PASS | current_payload | current | NYY | CURRENT_LINEUP_SHAPE | NYY current lineup has 9 expected positions. | |||
| PASS | current_payload | current | NYY | CURRENT_MODEL_ZERO_FALLBACK | NYY current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | NYY | CURRENT_NAMES_PRESENT | NYY current hitter names are populated. | |||
| PASS | current_payload | current | TEX | CURRENT_LINEUP_SHAPE | TEX current lineup has 9 expected positions. | |||
| PASS | current_payload | current | TEX | CURRENT_MODEL_ZERO_FALLBACK | TEX current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | TEX | CURRENT_NAMES_PRESENT | TEX current hitter names are populated. | |||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.620. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.620. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.380. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 7 is reasonably close to low-score expected_total_runs 10.3. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.298/0.696. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 13 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: NYY 11, TEX 11. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_NYY@TEX. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: NYY@TEX. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 240. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 253. | |||||
| PASS | pitch_count | simulation | NYY | PITCH_COUNT_TOTAL_MATCH | NYY pitch_count_summary total, row sum, and pitching total all match: 240. | |||
| PASS | pitch_count | simulation | TEX | PITCH_COUNT_TOTAL_MATCH | TEX pitch_count_summary total, row sum, and pitching total all match: 253. | |||
| PASS | pitching | current | NYY | PITCHING_REALISM | current:NYY pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | NYY | STARTER_PRESENT | current:NYY includes a starter/opener role. | |||
| PASS | pitching | current | TEX | PITCHING_REALISM | current:TEX pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | TEX | STARTER_PRESENT | current:TEX includes a starter/opener role. | |||
| PASS | pitching | simulation | NYY | PITCHING_REALISM | simulation:NYY pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | NYY | STARTER_PRESENT | simulation:NYY includes a starter/opener role. | |||
| PASS | pitching | simulation | TEX | PITCHING_REALISM | simulation:TEX pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | TEX | STARTER_PRESENT | simulation:TEX includes a starter/opener role. | |||
| PASS | pitching_totals | current | NYY | PITCHING_TOTALS_SUM | current:NYY pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | NYY | PITCHING_TOTALS_SUM | current:NYY pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | TEX | PITCHING_TOTALS_SUM | current:TEX pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | TEX | PITCHING_TOTALS_SUM | current:TEX pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | NYY | PITCHING_TOTALS_SUM | simulation:NYY pitching IP total matches pitcher sum: 13.0. | |||
| PASS | pitching_totals | simulation | NYY | PITCHING_TOTALS_SUM | simulation:NYY pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | TEX | PITCHING_TOTALS_SUM | simulation:TEX pitching IP total matches pitcher sum: 13.0. | |||
| PASS | pitching_totals | simulation | TEX | PITCHING_TOTALS_SUM | simulation:TEX pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: NYY 6 - 1 TEX. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: NYY 6 - 1 TEX. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: NYY wins 6-1 (Extra Innings - 13). | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.620. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 9/10 (0.900). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 3/10 (0.300). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: NYY wins 6-1 (Extra Innings - 13). | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: NYY wins 6-1. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 6-1. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 6-1, final 6-1 (delta 0). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 7. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: NYY wins 6-1 (Extra Innings - 13). | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | NYY | RECENT_FORM_RANGE | NYY recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | TEX | RECENT_FORM_RANGE | TEX recent hitting/pitching rates are in valid ranges. |
Passed checks
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| PASS | batting | current | NYY | BATTING_REALISM | current:NYY hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | TEX | BATTING_REALISM | current:TEX hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | NYY | BATTING_REALISM | simulation:NYY hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | TEX | BATTING_REALISM | simulation:TEX hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | NYY | BATTING_TOTALS_SUM | current:NYY batting totals equal summed player lines. | |||
| PASS | batting_totals | current | TEX | BATTING_TOTALS_SUM | current:TEX batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | NYY | BATTING_TOTALS_SUM | simulation:NYY batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | TEX | BATTING_TOTALS_SUM | simulation:TEX batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | NYY | BAT_PITCH_BB_MATCH | simulation:NYY batting walks match TEX pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | NYY | BAT_PITCH_HR_MATCH | simulation:NYY batting home runs match TEX pitching: 2. | |||
| PASS | boxscore_crosscheck | simulation | NYY | BAT_PITCH_H_MATCH | simulation:NYY batting hits match TEX pitching: 11. | |||
| PASS | boxscore_crosscheck | simulation | NYY | BAT_PITCH_SO_MATCH | simulation:NYY batting strikeouts match TEX pitching: 11. | |||
| PASS | boxscore_crosscheck | simulation | NYY | PA_BF_MATCH | simulation:NYY PA=57 matches TEX BF=57. | |||
| PASS | boxscore_crosscheck | simulation | NYY | RUNS_MATCH_FINAL | simulation:NYY runs match final score and opposing pitching runs: 6. | |||
| PASS | boxscore_crosscheck | simulation | TEX | BAT_PITCH_BB_MATCH | simulation:TEX batting walks match NYY pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | TEX | BAT_PITCH_HR_MATCH | simulation:TEX batting home runs match NYY pitching: 2. | |||
| PASS | boxscore_crosscheck | simulation | TEX | BAT_PITCH_H_MATCH | simulation:TEX batting hits match NYY pitching: 11. | |||
| PASS | boxscore_crosscheck | simulation | TEX | BAT_PITCH_SO_MATCH | simulation:TEX batting strikeouts match NYY pitching: 12. | |||
| PASS | boxscore_crosscheck | simulation | TEX | PA_BF_MATCH | simulation:TEX PA=58 matches NYY BF=58. | |||
| PASS | boxscore_crosscheck | simulation | TEX | RUNS_MATCH_FINAL | simulation:TEX runs match final score and opposing pitching runs: 1. | |||
| PASS | current_payload | current | NYY | CURRENT_LINEUP_SHAPE | NYY current lineup has 9 expected positions. | |||
| PASS | current_payload | current | NYY | CURRENT_MODEL_ZERO_FALLBACK | NYY current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | NYY | CURRENT_NAMES_PRESENT | NYY current hitter names are populated. | |||
| PASS | current_payload | current | TEX | CURRENT_LINEUP_SHAPE | TEX current lineup has 9 expected positions. | |||
| PASS | current_payload | current | TEX | CURRENT_MODEL_ZERO_FALLBACK | TEX current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | TEX | CURRENT_NAMES_PRESENT | TEX current hitter names are populated. | |||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.620. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.620. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.380. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 7 is reasonably close to low-score expected_total_runs 10.3. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.298/0.696. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 13 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: NYY 11, TEX 11. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_NYY@TEX. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: NYY@TEX. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 240. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 253. | |||||
| PASS | pitch_count | simulation | NYY | PITCH_COUNT_TOTAL_MATCH | NYY pitch_count_summary total, row sum, and pitching total all match: 240. | |||
| PASS | pitch_count | simulation | TEX | PITCH_COUNT_TOTAL_MATCH | TEX pitch_count_summary total, row sum, and pitching total all match: 253. | |||
| PASS | pitching | current | NYY | PITCHING_REALISM | current:NYY pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | NYY | STARTER_PRESENT | current:NYY includes a starter/opener role. | |||
| PASS | pitching | current | TEX | PITCHING_REALISM | current:TEX pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | TEX | STARTER_PRESENT | current:TEX includes a starter/opener role. | |||
| PASS | pitching | simulation | NYY | PITCHING_REALISM | simulation:NYY pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | NYY | STARTER_PRESENT | simulation:NYY includes a starter/opener role. | |||
| PASS | pitching | simulation | TEX | PITCHING_REALISM | simulation:TEX pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | TEX | STARTER_PRESENT | simulation:TEX includes a starter/opener role. | |||
| PASS | pitching_totals | current | NYY | PITCHING_TOTALS_SUM | current:NYY pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | NYY | PITCHING_TOTALS_SUM | current:NYY pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | TEX | PITCHING_TOTALS_SUM | current:TEX pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | TEX | PITCHING_TOTALS_SUM | current:TEX pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | NYY | PITCHING_TOTALS_SUM | simulation:NYY pitching IP total matches pitcher sum: 13.0. | |||
| PASS | pitching_totals | simulation | NYY | PITCHING_TOTALS_SUM | simulation:NYY pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | TEX | PITCHING_TOTALS_SUM | simulation:TEX pitching IP total matches pitcher sum: 13.0. | |||
| PASS | pitching_totals | simulation | TEX | PITCHING_TOTALS_SUM | simulation:TEX pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: NYY 6 - 1 TEX. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: NYY 6 - 1 TEX. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: NYY wins 6-1 (Extra Innings - 13). | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.620. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 9/10 (0.900). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 3/10 (0.300). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: NYY wins 6-1 (Extra Innings - 13). | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: NYY wins 6-1. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 6-1. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 6-1, final 6-1 (delta 0). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 7. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: NYY wins 6-1 (Extra Innings - 13). | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | NYY | RECENT_FORM_RANGE | NYY recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | TEX | RECENT_FORM_RANGE | TEX recent hitting/pitching rates are in valid ranges. |
Info/context findings
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| INFO | current_payload | current | NYY | CURRENT_PITCHER_DUPLICATION | NYY pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | TEX | CURRENT_PITCHER_DUPLICATION | TEX pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. |
Score evolution
| step | away_runs | home_runs | confidence | description |
|---|---|---|---|---|
| historical_ml | 3.775806188583374 | 4.2359089851379395 | Base ML historical model prediction | |
| variance_applied | 4 | 4 | Random variance applied (0.9-1.1) | |
| enhanced_prediction | 6 | 1 | 0.920 | Enhanced ML with recent form, H2H, low-score analysis |
| capped_target | 6 | 1 | Capped at max 12 realistic runs | |
| score_target_reconciliation | 6 | 1 | Final score reconciled to enhanced target after excessive simulation drift | |
| simulation_result | 6 | 1 | Final inning-by-inning simulation result |
Inning-by-inning linescore
| team | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | R | H |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NYY | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 2 | 1 | 8 | 11 |
| TEX | 3 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 2 | 9 | 11 |
Team totals - current + final simulation
| src | team | type | AB | H | 2B | 3B | HR | RBI | R | BB | SO | SF | HBP | SB | CS | IP | ER | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | NYY | batting | 28 | 9 | 0 | 0 | 0 | 4 | 6 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | NYY | pitching | 1 | 0 | 1 | 0 | 13 | 9.0 | 1 | 0 | 0 | ||||||||
| current | TEX | batting | 29 | 9 | 0 | 0 | 0 | 1 | 1 | 1 | 9 | 0 | 0 | 0 | 0 | ||||
| current | TEX | pitching | 4 | 0 | 4 | 0 | 9 | 9.0 | 4 | 0 | 0 | ||||||||
| simulation | NYY | batting | 50 | 11 | 2 | 0 | 2 | 6 | 6 | 7 | 11 | 0 | 0 | ||||||
| simulation | NYY | pitching | 11 | 2 | 1 | 8 | 12 | 13.0 | 1 | 58 | 240 | ||||||||
| simulation | TEX | batting | 50 | 11 | 4 | 0 | 2 | 1 | 1 | 8 | 12 | 0 | 0 | ||||||
| simulation | TEX | pitching | 11 | 2 | 6 | 7 | 11 | 13.0 | 6 | 57 | 253 |
Batting lines - current + final simulation
| src | team | order | pos | name | AB | H | 2B | 3B | HR | R | RBI | BB | SO | HBP | AVG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | NYY | 2B | Jazz Chisholm Jr. | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | NYY | DH | Jasson Domínguez | 4 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.250 | |
| current | NYY | 1B | Ben Rice | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | NYY | C | Austin Wells | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | NYY | RF | Aaron Judge | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | NYY | LF | Cody Bellinger | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | NYY | CF | Trent Grisham | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | NYY | 3B | Ryan McMahon | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | NYY | SS | José Caballero | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | TEX | 3B | Josh Jung | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | TEX | RF | Brandon Nimmo | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 | |
| current | TEX | DH | Joc Pederson | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | TEX | CF | Evan Carter | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | TEX | LF | Alejandro Osuna | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.333 | |
| current | TEX | 2B | Josh Smith | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | TEX | 1B | Jake Burger | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 | |
| current | TEX | C | Danny Jansen | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | TEX | SS | Corey Seager | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| simulation | NYY | 1 | CF | Trent Grisham | 5 | 2 | 0 | 0 | 1 | 1 | 2 | 2 | 1 | 0 | 0.400 |
| simulation | NYY | 2 | 1B | Ben Rice | 6 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 2 | 0 | 0.000 |
| simulation | NYY | 3 | RF | Aaron Judge | 6 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0.167 |
| simulation | NYY | 4 | LF | Cody Bellinger | 5 | 2 | 1 | 0 | 0 | 1 | 2 | 1 | 1 | 0 | 0.400 |
| simulation | NYY | 5 | 2B | Jazz Chisholm Jr. | 6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.000 |
| simulation | NYY | 6 | DH | Jasson Domínguez | 6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | NYY | 7 | C | Austin Wells | 5 | 3 | 1 | 0 | 1 | 1 | 2 | 1 | 1 | 0 | 0.600 |
| simulation | NYY | 8 | 3B | Ryan McMahon | 5 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 2 | 0 | 0.200 |
| simulation | NYY | 9 | SS | José Caballero | 6 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0.333 |
| simulation | TEX | 1 | RF | Brandon Nimmo | 7 | 2 | 2 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.286 |
| simulation | TEX | 2 | DH | Joc Pederson | 5 | 3 | 1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0.600 |
| simulation | TEX | 3 | SS | Corey Seager | 6 | 2 | 0 | 0 | 2 | 1 | 0 | 1 | 2 | 0 | 0.333 |
| simulation | TEX | 4 | 3B | Josh Jung | 6 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.167 |
| simulation | TEX | 5 | CF | Evan Carter | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.000 |
| simulation | TEX | 6 | 1B | Jake Burger | 6 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.167 |
| simulation | TEX | 7 | 2B | Josh Smith | 6 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.167 |
| simulation | TEX | 8 | C | Danny Jansen | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 2 | 0 | 0.000 |
| simulation | TEX | 9 | LF | Alejandro Osuna | 5 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 2 | 0 | 0.200 |
Pitching lines - current + final simulation
| src | team | order | name | role | IP | H | R | ER | BB | SO | HR | BF | Pitches | sim_ERA | season_ERA | season_WHIP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | NYY | 1 | Elmer Rodriguez-Cruz | Starter | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| current | NYY | 2 | Ryan Weathers | Starter | 4.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 3.32 | 1.26 |
| current | NYY | 3 | David Bednar | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0.00 | 3.69 | 1.72 |
| current | NYY | 4 | Brent Headrick | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0.00 | 2.27 | 1.85 |
| current | NYY | 5 | Fernando Cruz | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0.00 | 6.21 | 2.93 |
| current | NYY | 6 | Tim Hill | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 1.70 | 0.75 |
| current | NYY | 7 | Camilo Doval | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 13.50 | 8.28 | 1.38 |
| current | TEX | 1 | Nathan Eovaldi | Starter | 6.2 | 2 | 2 | 2 | 0 | 5 | 0 | 0 | 0 | 2.70 | 5.87 | 1.49 |
| current | TEX | 2 | Jacob Latz | Middle Reliever | 1.1 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 6.75 | 1.33 | 0.52 |
| current | TEX | 3 | Tyler Alexander | Middle Reliever | 1.0 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 9.00 | 0.71 | 1.34 |
| current | TEX | 4 | Cole Winn | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 5.43 | 1.38 | |
| current | TEX | 5 | Jakob Junis | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1.91 | 0.78 | |
| current | TEX | 6 | Jalen Beeks | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2.33 | 1.12 | |
| simulation | NYY | 1 | Elmer Rodriguez-Cruz | Starter | 4.0 | 3 | 1 | 1 | 3 | 5 | 0 | 18 | 81 | 2.25 | ||
| simulation | NYY | 2 | David Bednar | Middle Reliever | 1.0 | 2 | 0 | 0 | 0 | 1 | 1 | 5 | 19 | 0.00 | 3.69 | 1.72 |
| simulation | NYY | 3 | Fernando Cruz | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 14 | 0.00 | 6.21 | 2.93 |
| simulation | NYY | 4 | Brent Headrick | Middle Reliever | 1.0 | 1 | 0 | 0 | 1 | 1 | 0 | 5 | 20 | 0.00 | 2.27 | 1.85 |
| simulation | NYY | 5 | Tim Hill | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 8 | 0.00 | 1.70 | 0.75 |
| simulation | NYY | 6 | Camilo Doval | Middle Reliever | 1.0 | 0 | 0 | 0 | 2 | 2 | 0 | 5 | 25 | 0.00 | 8.28 | 1.38 |
| simulation | NYY | 7 | Ryan Yarbrough | Reliever | 4.0 | 5 | 0 | 0 | 2 | 2 | 1 | 19 | 73 | 0.00 | ||
| simulation | TEX | 1 | Nathan Eovaldi | Starter | 4.0 | 5 | 2 | 2 | 3 | 4 | 0 | 20 | 98 | 4.50 | 5.87 | 1.49 |
| simulation | TEX | 2 | Jakob Junis | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 2 | 0 | 4 | 19 | 0.00 | 1.91 | 0.78 |
| simulation | TEX | 3 | Cole Winn | Middle Reliever | 1.0 | 1 | 0 | 0 | 0 | 1 | 0 | 4 | 16 | 0.00 | 5.43 | 1.38 |
| simulation | TEX | 4 | Jacob Latz | Middle Reliever | 1.0 | 1 | 0 | 0 | 1 | 1 | 0 | 5 | 24 | 0.00 | 1.33 | 0.52 |
| simulation | TEX | 5 | Tyler Alexander | Middle Reliever | 1.0 | 2 | 3 | 3 | 1 | 1 | 1 | 6 | 28 | 27.00 | 0.71 | 1.34 |
| simulation | TEX | 6 | Jalen Beeks | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 2 | 0 | 4 | 22 | 0.00 | 2.33 | 1.12 |
| simulation | TEX | 7 | Kumar Rocker | Reliever | 2.0 | 0 | 0 | 0 | 0 | 0 | 0 | 6 | 20 | 0.00 | ||
| simulation | TEX | 8 | Cal Quantrill | Reliever | 2.0 | 2 | 1 | 1 | 0 | 0 | 1 | 8 | 26 | 4.50 |
Pitch count summary
| team | pitcher | role | IP | R | H | BB | SO | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|
| NYY | Elmer Rodriguez-Cruz | Starter | 4.0 | 3 | 3 | 3 | 5 | 18 | 81 |
| NYY | David Bednar | Middle Reliever | 1.0 | 2 | 2 | 0 | 1 | 5 | 19 |
| NYY | Fernando Cruz | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 14 |
| NYY | Brent Headrick | Middle Reliever | 1.0 | 0 | 1 | 1 | 1 | 5 | 20 |
| NYY | Tim Hill | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 8 |
| NYY | Camilo Doval | Middle Reliever | 1.0 | 0 | 0 | 2 | 2 | 5 | 25 |
| NYY | Ryan Yarbrough | Reliever | 4.0 | 4 | 5 | 2 | 2 | 19 | 73 |
| TEX | Nathan Eovaldi | Starter | 4.0 | 2 | 5 | 3 | 4 | 20 | 98 |
| TEX | Jakob Junis | Middle Reliever | 1.0 | 0 | 0 | 1 | 2 | 4 | 19 |
| TEX | Cole Winn | Middle Reliever | 1.0 | 0 | 1 | 0 | 1 | 4 | 16 |
| TEX | Jacob Latz | Middle Reliever | 1.0 | 0 | 1 | 1 | 1 | 5 | 24 |
| TEX | Tyler Alexander | Middle Reliever | 1.0 | 3 | 2 | 1 | 1 | 6 | 28 |
| TEX | Jalen Beeks | Middle Reliever | 1.0 | 0 | 0 | 1 | 2 | 4 | 22 |
| TEX | Kumar Rocker | Reliever | 2.0 | 0 | 0 | 0 | 0 | 6 | 20 |
| TEX | Cal Quantrill | Reliever | 2.0 | 3 | 2 | 0 | 0 | 8 | 26 |
Audit rule catalog
| rule | status | critical | error | warning | pass | description |
|---|---|---|---|---|---|---|
| BATTING_REALISM | error | 0 | 1 | 0 | 4 | Player/team batting lines obey baseball constraints. |
| BATTING_TOTALS_SUM | good | 0 | 0 | 0 | 4 | Team batting totals equal the sum of player batting lines. |
| BAT_PITCH_BB_MATCH | good | 0 | 0 | 0 | 2 | Batting walks match opposing pitching walks allowed. |
| BAT_PITCH_HR_MATCH | good | 0 | 0 | 0 | 2 | Batting home runs match opposing pitching home runs allowed. |
| BAT_PITCH_H_MATCH | good | 0 | 0 | 0 | 2 | Batting hits match opposing pitching hits allowed. |
| BAT_PITCH_SO_MATCH | good | 0 | 0 | 0 | 2 | Batting strikeouts match opposing pitching strikeouts. |
| CONFIDENCE_RANGE | good | 0 | 0 | 0 | 5 | Confidence values are between 0 and 1. |
| CURRENT_FINALIZED_MATCH_BOX | warning | 0 | 0 | 4 | 0 | Current finalized player totals agree with final simulation box score. |
| CURRENT_LINEUP_SHAPE | good | 0 | 0 | 0 | 2 | Current predicted_performance contains a plausible 9-player lineup. |
| CURRENT_MODEL_ZERO_FALLBACK | good | 0 | 0 | 0 | 2 | Current model payload did not rely too heavily on all-zero model predictions. |
| CURRENT_NAMES_PRESENT | good | 0 | 0 | 0 | 2 | Current predicted_performance has usable player names. |
| CURRENT_PITCHER_DUPLICATION | info | 0 | 0 | 0 | 0 | Pitcher lists duplicated across current sections are detected and reconciled. |
| CURRENT_SCORE_MATCHES_SIM | good | 0 | 0 | 0 | 1 | game.predicted_runs matches scoring_simulation.final_score. |
| DATE_PARSE | good | 0 | 0 | 0 | 1 | Game date can be parsed as an ISO date. |
| FILENAME_GAME_ID_MATCH | good | 0 | 0 | 0 | 1 | Filename and game_id identify the same game. |
| FILENAME_TEAM_MATCH | good | 0 | 0 | 0 | 1 | Filename teams match the teams inside the JSON. |
| GAME_SUMMARY_MATCH | good | 0 | 0 | 0 | 1 | game_summary text agrees with final score. |
| H2H_DATA_LEAKAGE | warning | 0 | 0 | 1 | 0 | Head-to-head history does not include same-day or future games in pregame mode. |
| INNINGS_COUNT | good | 0 | 0 | 0 | 1 | Inning count is valid for MLB. |
| INNING_OUTS | not triggered | 0 | 0 | 0 | 0 | Each played half inning has valid outs. |
| INNING_PLAY_SUMS | good | 0 | 0 | 0 | 1 | Detailed plays agree with inning runs, hits, outs, and pitches. |
| INNING_SEQUENCE | good | 0 | 0 | 0 | 1 | Innings are sequential and unique. |
| INNING_TOTAL_HITS | good | 0 | 0 | 0 | 1 | Inning hits sum to batting team hits. |
| INNING_TOTAL_RUNS | critical | 1 | 0 | 0 | 0 | Inning runs sum to final score. |
| LOW_SCORE_ANALYSIS | good | 0 | 0 | 0 | 3 | Low-score probability factors are valid and directionally consistent. |
| PA_BF_MATCH | good | 0 | 0 | 0 | 2 | Team plate appearances match opposing batters faced. |
| PITCHING_REALISM | good | 0 | 0 | 0 | 4 | Pitcher/team pitching lines obey baseball constraints. |
| PITCHING_TOTALS_SUM | good | 0 | 0 | 0 | 8 | Team pitching totals equal the sum of pitcher lines. |
| PITCH_COUNT_PITCHER_MATCH | warning | 0 | 0 | 4 | 0 | Pitch count summary pitcher rows agree with pitching box score. |
| PITCH_COUNT_TOTAL_MATCH | good | 0 | 0 | 0 | 4 | Pitch count summary totals match team pitching totals. |
| PITCH_DETAIL_SANITY | good | 0 | 0 | 0 | 1 | Pitch-by-pitch details have plausible values. |
| PREDICTION_COMPARISON_MATCH | good | 0 | 0 | 0 | 3 | prediction_comparison scores agree with target/final result. |
| RECENT_FORM_RANGE | good | 0 | 0 | 0 | 4 | Recent-form metrics are within valid numeric ranges. |
| RECONCILIATION_PROPAGATION | critical | 1 | 0 | 0 | 0 | When score_target_reconciliation is used, all final-facing sections are regenerated from the reconciled score. |
| REPORT_COMPLETE | good | 0 | 0 | 0 | 1 | Report includes every audit result in the all-findings table. |
| REPORT_CSV_EXPORT | not triggered | 0 | 0 | 0 | 0 | Optional CSV exports were written for summary and problem rows. |
| RUNS_MATCH_FINAL | good | 0 | 0 | 0 | 2 | Batting/pitching runs agree with final score. |
| SCHEMA_ROOTS_PRESENT | good | 0 | 0 | 0 | 1 | Expected JSON root sections exist and can be audited. |
| SCORE_NO_TIE | good | 0 | 0 | 0 | 1 | Final MLB score has a clear winner. |
| SCORE_STEP_FINAL_MATCH | good | 0 | 0 | 0 | 1 | score_evolution simulation_result matches final score. |
| SCORE_STEP_ORDER | good | 0 | 0 | 0 | 1 | Score evolution contains the expected ordered steps. |
| STARTER_PRESENT | good | 0 | 0 | 0 | 4 | Pitching staff includes a starter or opener when expected. |
| TARGET_SCORE_DRIFT | good | 0 | 0 | 0 | 1 | Final score does not drift too far from enhanced target. |
| TEAM_RECENT_RECORD | warning | 0 | 0 | 2 | 0 | team_recent_performance wins and win_pct agree with games_analyzed. |
| TOTAL_RUNS_MATCH | good | 0 | 0 | 0 | 1 | total_runs equals away + home runs. |
| WINNER_FIELD_MATCH | good | 0 | 0 | 0 | 1 | winner field agrees with the final score. |
20260429_SEA@MIN
20260429_SEA@MIN.json • 2026-04-29
Final simulation is structurally valid with warnings to review. Risk score: 60.
Action summary - what to fix first
| Level | Problem group / fix | Count | Teams | Example |
|---|---|---|---|---|
| WARN | Current payload is not synced to final box score The final simulation box score is treated as the source of truth. Sync game.predicted_performance finalized_stats/pitcher projections after scoring_simulation, or stop comparing that pre-simulation payload as final output. | 0C / 0E / 4W | MIN, SEA | MIN current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=33; H: current=9, sim=6; 2B: current=0, sim=2; HR: current=0, sim=1; BB: current=0, sim=1; SO: current=9, sim=5; HBP: current=0, sim=2). MIN current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=4, sim=9; R: current=4, sim=5; ER: current=4, sim=5; BB: current=0, sim=2; SO: current=14, sim=8; HR: current=0, sim=1). |
| WARN | team_recent_performance record bug wins and win_pct do not agree. Either calculate wins correctly or derive win_pct directly as wins/games_analyzed. | 0C / 0E / 2W | MIN, SEA | MIN wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. SEA wins=0 over games_analyzed=31 implies win_pct=0.000, but JSON has 0.500. |
Problems table - exact rows
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | MIN | CURRENT_FINALIZED_MATCH_BOX | MIN current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=33; H: current=9, sim=6; 2B: current=0, sim=2; HR: current=0, sim=1; BB: current=0, sim=1; SO: current=9, sim=5; HBP: current=0, sim=2). | |||
| WARN | current_vs_final | cross-schema | MIN | CURRENT_FINALIZED_MATCH_BOX | MIN current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=4, sim=9; R: current=4, sim=5; ER: current=4, sim=5; BB: current=0, sim=2; SO: current=14, sim=8; HR: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | SEA | CURRENT_FINALIZED_MATCH_BOX | SEA current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=36; H: current=8, sim=9; 2B: current=0, sim=2; HR: current=0, sim=1; RBI: current=3, sim=5; BB: current=0, sim=2; SO: current=9, sim=8; HBP: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | SEA | CURRENT_FINALIZED_MATCH_BOX | SEA current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=1, sim=6; BB: current=0, sim=1; SO: current=15, sim=5; HR: current=0, sim=1). | |||
| WARN | team_recent_performance | current | MIN | TEAM_RECENT_RECORD | MIN wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | SEA | TEAM_RECENT_RECORD | SEA wins=0 over games_analyzed=31 implies win_pct=0.000, but JSON has 0.500. |
All findings - complete audit trail
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | MIN | CURRENT_FINALIZED_MATCH_BOX | MIN current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=33; H: current=9, sim=6; 2B: current=0, sim=2; HR: current=0, sim=1; BB: current=0, sim=1; SO: current=9, sim=5; HBP: current=0, sim=2). | |||
| WARN | current_vs_final | cross-schema | MIN | CURRENT_FINALIZED_MATCH_BOX | MIN current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=4, sim=9; R: current=4, sim=5; ER: current=4, sim=5; BB: current=0, sim=2; SO: current=14, sim=8; HR: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | SEA | CURRENT_FINALIZED_MATCH_BOX | SEA current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=36; H: current=8, sim=9; 2B: current=0, sim=2; HR: current=0, sim=1; RBI: current=3, sim=5; BB: current=0, sim=2; SO: current=9, sim=8; HBP: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | SEA | CURRENT_FINALIZED_MATCH_BOX | SEA current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=1, sim=6; BB: current=0, sim=1; SO: current=15, sim=5; HR: current=0, sim=1). | |||
| WARN | team_recent_performance | current | MIN | TEAM_RECENT_RECORD | MIN wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | SEA | TEAM_RECENT_RECORD | SEA wins=0 over games_analyzed=31 implies win_pct=0.000, but JSON has 0.500. | |||
| INFO | current_payload | current | MIN | CURRENT_PITCHER_DUPLICATION | MIN pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | SEA | CURRENT_PITCHER_DUPLICATION | SEA pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. | |||||
| PASS | batting | current | MIN | BATTING_REALISM | current:MIN hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | SEA | BATTING_REALISM | current:SEA hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | MIN | BATTING_REALISM | simulation:MIN hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | SEA | BATTING_REALISM | simulation:SEA hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | MIN | BATTING_TOTALS_SUM | current:MIN batting totals equal summed player lines. | |||
| PASS | batting_totals | current | SEA | BATTING_TOTALS_SUM | current:SEA batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | MIN | BATTING_TOTALS_SUM | simulation:MIN batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | SEA | BATTING_TOTALS_SUM | simulation:SEA batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | MIN | BAT_PITCH_BB_MATCH | simulation:MIN batting walks match SEA pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | MIN | BAT_PITCH_HR_MATCH | simulation:MIN batting home runs match SEA pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | MIN | BAT_PITCH_H_MATCH | simulation:MIN batting hits match SEA pitching: 6. | |||
| PASS | boxscore_crosscheck | simulation | MIN | BAT_PITCH_SO_MATCH | simulation:MIN batting strikeouts match SEA pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | MIN | PA_BF_MATCH | simulation:MIN PA=36 matches SEA BF=36. | |||
| PASS | boxscore_crosscheck | simulation | MIN | RUNS_MATCH_FINAL | simulation:MIN runs match final score and opposing pitching runs: 1. | |||
| PASS | boxscore_crosscheck | simulation | SEA | BAT_PITCH_BB_MATCH | simulation:SEA batting walks match MIN pitching: 2. | |||
| PASS | boxscore_crosscheck | simulation | SEA | BAT_PITCH_HR_MATCH | simulation:SEA batting home runs match MIN pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | SEA | BAT_PITCH_H_MATCH | simulation:SEA batting hits match MIN pitching: 9. | |||
| PASS | boxscore_crosscheck | simulation | SEA | BAT_PITCH_SO_MATCH | simulation:SEA batting strikeouts match MIN pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | SEA | PA_BF_MATCH | simulation:SEA PA=39 matches MIN BF=39. | |||
| PASS | boxscore_crosscheck | simulation | SEA | RUNS_MATCH_FINAL | simulation:SEA runs match final score and opposing pitching runs: 5. | |||
| PASS | current_payload | current | MIN | CURRENT_LINEUP_SHAPE | MIN current lineup has 9 expected positions. | |||
| PASS | current_payload | current | MIN | CURRENT_MODEL_ZERO_FALLBACK | MIN current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | MIN | CURRENT_NAMES_PRESENT | MIN current hitter names are populated. | |||
| PASS | current_payload | current | SEA | CURRENT_LINEUP_SHAPE | SEA current lineup has 9 expected positions. | |||
| PASS | current_payload | current | SEA | CURRENT_MODEL_ZERO_FALLBACK | SEA current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | SEA | CURRENT_NAMES_PRESENT | SEA current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.786. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.786. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.214. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 6 is reasonably close to low-score expected_total_runs 9.8. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.432/0.900. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: SEA 9, MIN 6. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: SEA 5 - MIN 1. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_SEA@MIN. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: SEA@MIN. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 142. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 159. | |||||
| PASS | pitch_count | simulation | MIN | PITCH_COUNT_PITCHER_MATCH | MIN pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | MIN | PITCH_COUNT_TOTAL_MATCH | MIN pitch_count_summary total, row sum, and pitching total all match: 159. | |||
| PASS | pitch_count | simulation | SEA | PITCH_COUNT_PITCHER_MATCH | SEA pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | SEA | PITCH_COUNT_TOTAL_MATCH | SEA pitch_count_summary total, row sum, and pitching total all match: 142. | |||
| PASS | pitching | current | MIN | PITCHING_REALISM | current:MIN pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | MIN | STARTER_PRESENT | current:MIN includes a starter/opener role. | |||
| PASS | pitching | current | SEA | PITCHING_REALISM | current:SEA pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | SEA | STARTER_PRESENT | current:SEA includes a starter/opener role. | |||
| PASS | pitching | simulation | MIN | PITCHING_REALISM | simulation:MIN pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | MIN | STARTER_PRESENT | simulation:MIN includes a starter/opener role. | |||
| PASS | pitching | simulation | SEA | PITCHING_REALISM | simulation:SEA pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | SEA | STARTER_PRESENT | simulation:SEA includes a starter/opener role. | |||
| PASS | pitching_totals | current | MIN | PITCHING_TOTALS_SUM | current:MIN pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | MIN | PITCHING_TOTALS_SUM | current:MIN pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | SEA | PITCHING_TOTALS_SUM | current:SEA pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | SEA | PITCHING_TOTALS_SUM | current:SEA pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | MIN | PITCHING_TOTALS_SUM | simulation:MIN pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | MIN | PITCHING_TOTALS_SUM | simulation:MIN pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | SEA | PITCHING_TOTALS_SUM | simulation:SEA pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | SEA | PITCHING_TOTALS_SUM | simulation:SEA pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: SEA 6 - 2 MIN. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: SEA 5 - 1 MIN. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: SEA wins 5-1. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.786. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 7/10 (0.700). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 2/10 (0.200). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: SEA wins 5-1. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: SEA wins 5-1. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 5-1. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 6-2, final 5-1 (delta 2). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 6. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: SEA wins 5-1. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | MIN | RECENT_FORM_RANGE | MIN recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | SEA | RECENT_FORM_RANGE | SEA recent hitting/pitching rates are in valid ranges. |
Passed checks
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| PASS | batting | current | MIN | BATTING_REALISM | current:MIN hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | SEA | BATTING_REALISM | current:SEA hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | MIN | BATTING_REALISM | simulation:MIN hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | SEA | BATTING_REALISM | simulation:SEA hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | MIN | BATTING_TOTALS_SUM | current:MIN batting totals equal summed player lines. | |||
| PASS | batting_totals | current | SEA | BATTING_TOTALS_SUM | current:SEA batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | MIN | BATTING_TOTALS_SUM | simulation:MIN batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | SEA | BATTING_TOTALS_SUM | simulation:SEA batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | MIN | BAT_PITCH_BB_MATCH | simulation:MIN batting walks match SEA pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | MIN | BAT_PITCH_HR_MATCH | simulation:MIN batting home runs match SEA pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | MIN | BAT_PITCH_H_MATCH | simulation:MIN batting hits match SEA pitching: 6. | |||
| PASS | boxscore_crosscheck | simulation | MIN | BAT_PITCH_SO_MATCH | simulation:MIN batting strikeouts match SEA pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | MIN | PA_BF_MATCH | simulation:MIN PA=36 matches SEA BF=36. | |||
| PASS | boxscore_crosscheck | simulation | MIN | RUNS_MATCH_FINAL | simulation:MIN runs match final score and opposing pitching runs: 1. | |||
| PASS | boxscore_crosscheck | simulation | SEA | BAT_PITCH_BB_MATCH | simulation:SEA batting walks match MIN pitching: 2. | |||
| PASS | boxscore_crosscheck | simulation | SEA | BAT_PITCH_HR_MATCH | simulation:SEA batting home runs match MIN pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | SEA | BAT_PITCH_H_MATCH | simulation:SEA batting hits match MIN pitching: 9. | |||
| PASS | boxscore_crosscheck | simulation | SEA | BAT_PITCH_SO_MATCH | simulation:SEA batting strikeouts match MIN pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | SEA | PA_BF_MATCH | simulation:SEA PA=39 matches MIN BF=39. | |||
| PASS | boxscore_crosscheck | simulation | SEA | RUNS_MATCH_FINAL | simulation:SEA runs match final score and opposing pitching runs: 5. | |||
| PASS | current_payload | current | MIN | CURRENT_LINEUP_SHAPE | MIN current lineup has 9 expected positions. | |||
| PASS | current_payload | current | MIN | CURRENT_MODEL_ZERO_FALLBACK | MIN current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | MIN | CURRENT_NAMES_PRESENT | MIN current hitter names are populated. | |||
| PASS | current_payload | current | SEA | CURRENT_LINEUP_SHAPE | SEA current lineup has 9 expected positions. | |||
| PASS | current_payload | current | SEA | CURRENT_MODEL_ZERO_FALLBACK | SEA current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | SEA | CURRENT_NAMES_PRESENT | SEA current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.786. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.786. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.214. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 6 is reasonably close to low-score expected_total_runs 9.8. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.432/0.900. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: SEA 9, MIN 6. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: SEA 5 - MIN 1. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_SEA@MIN. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: SEA@MIN. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 142. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 159. | |||||
| PASS | pitch_count | simulation | MIN | PITCH_COUNT_PITCHER_MATCH | MIN pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | MIN | PITCH_COUNT_TOTAL_MATCH | MIN pitch_count_summary total, row sum, and pitching total all match: 159. | |||
| PASS | pitch_count | simulation | SEA | PITCH_COUNT_PITCHER_MATCH | SEA pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | SEA | PITCH_COUNT_TOTAL_MATCH | SEA pitch_count_summary total, row sum, and pitching total all match: 142. | |||
| PASS | pitching | current | MIN | PITCHING_REALISM | current:MIN pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | MIN | STARTER_PRESENT | current:MIN includes a starter/opener role. | |||
| PASS | pitching | current | SEA | PITCHING_REALISM | current:SEA pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | SEA | STARTER_PRESENT | current:SEA includes a starter/opener role. | |||
| PASS | pitching | simulation | MIN | PITCHING_REALISM | simulation:MIN pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | MIN | STARTER_PRESENT | simulation:MIN includes a starter/opener role. | |||
| PASS | pitching | simulation | SEA | PITCHING_REALISM | simulation:SEA pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | SEA | STARTER_PRESENT | simulation:SEA includes a starter/opener role. | |||
| PASS | pitching_totals | current | MIN | PITCHING_TOTALS_SUM | current:MIN pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | MIN | PITCHING_TOTALS_SUM | current:MIN pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | SEA | PITCHING_TOTALS_SUM | current:SEA pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | SEA | PITCHING_TOTALS_SUM | current:SEA pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | MIN | PITCHING_TOTALS_SUM | simulation:MIN pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | MIN | PITCHING_TOTALS_SUM | simulation:MIN pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | SEA | PITCHING_TOTALS_SUM | simulation:SEA pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | SEA | PITCHING_TOTALS_SUM | simulation:SEA pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: SEA 6 - 2 MIN. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: SEA 5 - 1 MIN. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: SEA wins 5-1. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.786. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 7/10 (0.700). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 2/10 (0.200). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: SEA wins 5-1. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: SEA wins 5-1. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 5-1. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 6-2, final 5-1 (delta 2). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 6. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: SEA wins 5-1. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | MIN | RECENT_FORM_RANGE | MIN recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | SEA | RECENT_FORM_RANGE | SEA recent hitting/pitching rates are in valid ranges. |
Info/context findings
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| INFO | current_payload | current | MIN | CURRENT_PITCHER_DUPLICATION | MIN pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | SEA | CURRENT_PITCHER_DUPLICATION | SEA pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
Score evolution
| step | away_runs | home_runs | confidence | description |
|---|---|---|---|---|
| historical_ml | 5.504892349243164 | 3.568399667739868 | Base ML historical model prediction | |
| variance_applied | 6 | 4 | Random variance applied (0.9-1.1) | |
| enhanced_prediction | 6 | 2 | 0.920 | Enhanced ML with recent form, H2H, low-score analysis |
| capped_target | 6 | 2 | Capped at max 12 realistic runs | |
| simulation_result | 5 | 1 | Final inning-by-inning simulation result |
Inning-by-inning linescore
| team | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | R | H |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SEA | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 2 | 1 | 5 | 9 |
| MIN | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 6 |
Team totals - current + final simulation
| src | team | type | AB | H | 2B | 3B | HR | RBI | R | BB | SO | SF | HBP | SB | CS | IP | ER | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | SEA | batting | 28 | 8 | 0 | 0 | 0 | 3 | 5 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | SEA | pitching | 1 | 0 | 1 | 0 | 15 | 9.0 | 1 | 0 | 0 | ||||||||
| current | MIN | batting | 28 | 9 | 0 | 0 | 0 | 1 | 1 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | MIN | pitching | 4 | 0 | 4 | 0 | 14 | 9.0 | 4 | 0 | 0 | ||||||||
| simulation | SEA | batting | 36 | 9 | 2 | 0 | 1 | 5 | 5 | 2 | 8 | 0 | 1 | ||||||
| simulation | SEA | pitching | 6 | 1 | 1 | 1 | 5 | 9.0 | 1 | 36 | 142 | ||||||||
| simulation | MIN | batting | 33 | 6 | 2 | 0 | 1 | 1 | 1 | 1 | 5 | 0 | 2 | ||||||
| simulation | MIN | pitching | 9 | 1 | 5 | 2 | 8 | 9.0 | 5 | 39 | 159 |
Batting lines - current + final simulation
| src | team | order | pos | name | AB | H | 2B | 3B | HR | R | RBI | BB | SO | HBP | AVG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | SEA | 2B | Cole Young | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | SEA | DH | Dominic Canzone | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | SEA | 3B | Leo Rivas | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 | |
| current | SEA | RF | Luke Raley | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | SEA | LF | Randy Arozarena | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | SEA | SS | J.P. Crawford | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | SEA | 1B | Josh Naylor | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | SEA | C | Cal Raleigh | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.250 | |
| current | SEA | CF | Julio Rodríguez | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | MIN | DH | Josh Bell | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | MIN | RF | Matt Wallner | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | MIN | LF | Trevor Larnach | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | MIN | CF | Byron Buxton | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 | |
| current | MIN | C | Ryan Jeffers | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | MIN | SS | Brooks Lee | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | MIN | 2B | Luke Keaschall | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | MIN | 1B | Kody Clemens | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | MIN | 3B | Royce Lewis | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| simulation | SEA | 1 | SS | J.P. Crawford | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0.250 |
| simulation | SEA | 2 | C | Cal Raleigh | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | SEA | 3 | CF | Julio Rodríguez | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0.000 |
| simulation | SEA | 4 | 1B | Josh Naylor | 4 | 1 | 0 | 0 | 1 | 1 | 2 | 0 | 0 | 0 | 0.250 |
| simulation | SEA | 5 | LF | Randy Arozarena | 3 | 2 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0.667 |
| simulation | SEA | 6 | RF | Luke Raley | 4 | 2 | 2 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.500 |
| simulation | SEA | 7 | DH | Dominic Canzone | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0.333 |
| simulation | SEA | 8 | 2B | Cole Young | 4 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.500 |
| simulation | SEA | 9 | 3B | Leo Rivas | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | MIN | 1 | CF | Byron Buxton | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.000 |
| simulation | MIN | 2 | SS | Brooks Lee | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | MIN | 3 | LF | Trevor Larnach | 4 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 |
| simulation | MIN | 4 | DH | Josh Bell | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0.333 |
| simulation | MIN | 5 | C | Ryan Jeffers | 4 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0.250 |
| simulation | MIN | 6 | 1B | Kody Clemens | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.000 |
| simulation | MIN | 7 | 2B | Luke Keaschall | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 |
| simulation | MIN | 8 | RF | Matt Wallner | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0.333 |
| simulation | MIN | 9 | 3B | Royce Lewis | 4 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 |
Pitching lines - current + final simulation
| src | team | order | name | role | IP | H | R | ER | BB | SO | HR | BF | Pitches | sim_ERA | season_ERA | season_WHIP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | SEA | 1 | George Kirby | Starter | 5.2 | 1 | 1 | 1 | 0 | 8 | 0 | 0 | 0 | 1.59 | 3.05 | 1.07 |
| current | SEA | 2 | Eduard Bazardo | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0.00 | 1.64 | 1.27 |
| current | SEA | 3 | Jose A. Ferrer | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 2.14 | 1.67 |
| current | SEA | 4 | Matt Brash | Middle Reliever | 0.2 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 0.00 | 0.48 |
| current | SEA | 5 | Andrés Muñoz | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6.99 | 1.55 | |
| current | SEA | 6 | Gabe Speier | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2.76 | 1.53 | |
| current | MIN | 1 | Taj Bradley | Starter | 4.2 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0.00 | 2.97 | 1.32 |
| current | MIN | 2 | Cole Sands | Middle Reliever | 1.1 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 6.75 | 5.51 | 1.63 |
| current | MIN | 3 | Justin Topa | Middle Reliever | 1.1 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 6.75 | 4.05 | 1.71 |
| current | MIN | 4 | Eric Orze | Middle Reliever | 0.2 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 3.43 | 1.33 |
| current | MIN | 5 | Taylor Rogers | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 13.50 | 4.62 | 1.92 |
| current | MIN | 6 | Anthony Banda | Middle Reliever | 0.1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 27.00 | 11.93 | 1.93 |
| simulation | SEA | 1 | George Kirby | Starter | 5.0 | 3 | 1 | 1 | 1 | 4 | 1 | 19 | 84 | 1.80 | 3.05 | 1.07 |
| simulation | SEA | 2 | Andrés Muñoz | Middle Reliever | 1.0 | 1 | 0 | 0 | 0 | 0 | 0 | 5 | 12 | 0.00 | 6.99 | 1.55 |
| simulation | SEA | 3 | Matt Brash | Middle Reliever | 1.0 | 1 | 0 | 0 | 0 | 0 | 0 | 4 | 17 | 0.00 | 0.00 | 0.48 |
| simulation | SEA | 4 | Gabe Speier | Middle Reliever | 1.0 | 1 | 0 | 0 | 0 | 1 | 0 | 4 | 17 | 0.00 | 2.76 | 1.53 |
| simulation | SEA | 5 | Eduard Bazardo | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 12 | 0.00 | 1.64 | 1.27 |
| simulation | MIN | 1 | Taj Bradley | Starter | 6.0 | 3 | 1 | 1 | 1 | 6 | 0 | 22 | 91 | 1.50 | 2.97 | 1.32 |
| simulation | MIN | 2 | Cole Sands | Middle Reliever | 1.0 | 2 | 1 | 1 | 0 | 0 | 0 | 5 | 19 | 9.00 | 5.51 | 1.63 |
| simulation | MIN | 3 | Taylor Rogers | Middle Reliever | 1.0 | 2 | 2 | 2 | 0 | 1 | 1 | 6 | 24 | 18.00 | 4.62 | 1.92 |
| simulation | MIN | 4 | Justin Topa | Middle Reliever | 1.0 | 2 | 1 | 1 | 1 | 1 | 0 | 6 | 25 | 9.00 | 4.05 | 1.71 |
Pitch count summary
| team | pitcher | role | IP | R | H | BB | SO | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|
| SEA | George Kirby | Starter | 5.0 | 1 | 3 | 1 | 4 | 19 | 84 |
| SEA | Andrés Muñoz | Middle Reliever | 1.0 | 0 | 1 | 0 | 0 | 5 | 12 |
| SEA | Matt Brash | Middle Reliever | 1.0 | 0 | 1 | 0 | 0 | 4 | 17 |
| SEA | Gabe Speier | Middle Reliever | 1.0 | 0 | 1 | 0 | 1 | 4 | 17 |
| SEA | Eduard Bazardo | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 4 | 12 |
| MIN | Taj Bradley | Starter | 6.0 | 1 | 3 | 1 | 6 | 22 | 91 |
| MIN | Cole Sands | Middle Reliever | 1.0 | 1 | 2 | 0 | 0 | 5 | 19 |
| MIN | Taylor Rogers | Middle Reliever | 1.0 | 2 | 2 | 0 | 1 | 6 | 24 |
| MIN | Justin Topa | Middle Reliever | 1.0 | 1 | 2 | 1 | 1 | 6 | 25 |
Audit rule catalog
| rule | status | critical | error | warning | pass | description |
|---|---|---|---|---|---|---|
| BATTING_REALISM | good | 0 | 0 | 0 | 4 | Player/team batting lines obey baseball constraints. |
| BATTING_TOTALS_SUM | good | 0 | 0 | 0 | 4 | Team batting totals equal the sum of player batting lines. |
| BAT_PITCH_BB_MATCH | good | 0 | 0 | 0 | 2 | Batting walks match opposing pitching walks allowed. |
| BAT_PITCH_HR_MATCH | good | 0 | 0 | 0 | 2 | Batting home runs match opposing pitching home runs allowed. |
| BAT_PITCH_H_MATCH | good | 0 | 0 | 0 | 2 | Batting hits match opposing pitching hits allowed. |
| BAT_PITCH_SO_MATCH | good | 0 | 0 | 0 | 2 | Batting strikeouts match opposing pitching strikeouts. |
| CONFIDENCE_RANGE | good | 0 | 0 | 0 | 5 | Confidence values are between 0 and 1. |
| CURRENT_FINALIZED_MATCH_BOX | warning | 0 | 0 | 4 | 0 | Current finalized player totals agree with final simulation box score. |
| CURRENT_LINEUP_SHAPE | good | 0 | 0 | 0 | 2 | Current predicted_performance contains a plausible 9-player lineup. |
| CURRENT_MODEL_ZERO_FALLBACK | good | 0 | 0 | 0 | 2 | Current model payload did not rely too heavily on all-zero model predictions. |
| CURRENT_NAMES_PRESENT | good | 0 | 0 | 0 | 2 | Current predicted_performance has usable player names. |
| CURRENT_PITCHER_DUPLICATION | info | 0 | 0 | 0 | 0 | Pitcher lists duplicated across current sections are detected and reconciled. |
| CURRENT_SCORE_MATCHES_SIM | good | 0 | 0 | 0 | 1 | game.predicted_runs matches scoring_simulation.final_score. |
| DATE_PARSE | good | 0 | 0 | 0 | 1 | Game date can be parsed as an ISO date. |
| FILENAME_GAME_ID_MATCH | good | 0 | 0 | 0 | 1 | Filename and game_id identify the same game. |
| FILENAME_TEAM_MATCH | good | 0 | 0 | 0 | 1 | Filename teams match the teams inside the JSON. |
| GAME_SUMMARY_MATCH | good | 0 | 0 | 0 | 1 | game_summary text agrees with final score. |
| H2H_DATA_LEAKAGE | good | 0 | 0 | 0 | 1 | Head-to-head history does not include same-day or future games in pregame mode. |
| INNINGS_COUNT | good | 0 | 0 | 0 | 1 | Inning count is valid for MLB. |
| INNING_OUTS | not triggered | 0 | 0 | 0 | 0 | Each played half inning has valid outs. |
| INNING_PLAY_SUMS | good | 0 | 0 | 0 | 1 | Detailed plays agree with inning runs, hits, outs, and pitches. |
| INNING_SEQUENCE | good | 0 | 0 | 0 | 1 | Innings are sequential and unique. |
| INNING_TOTAL_HITS | good | 0 | 0 | 0 | 1 | Inning hits sum to batting team hits. |
| INNING_TOTAL_RUNS | good | 0 | 0 | 0 | 1 | Inning runs sum to final score. |
| LOW_SCORE_ANALYSIS | good | 0 | 0 | 0 | 3 | Low-score probability factors are valid and directionally consistent. |
| PA_BF_MATCH | good | 0 | 0 | 0 | 2 | Team plate appearances match opposing batters faced. |
| PITCHING_REALISM | good | 0 | 0 | 0 | 4 | Pitcher/team pitching lines obey baseball constraints. |
| PITCHING_TOTALS_SUM | good | 0 | 0 | 0 | 8 | Team pitching totals equal the sum of pitcher lines. |
| PITCH_COUNT_PITCHER_MATCH | good | 0 | 0 | 0 | 2 | Pitch count summary pitcher rows agree with pitching box score. |
| PITCH_COUNT_TOTAL_MATCH | good | 0 | 0 | 0 | 4 | Pitch count summary totals match team pitching totals. |
| PITCH_DETAIL_SANITY | good | 0 | 0 | 0 | 1 | Pitch-by-pitch details have plausible values. |
| PREDICTION_COMPARISON_MATCH | good | 0 | 0 | 0 | 3 | prediction_comparison scores agree with target/final result. |
| RECENT_FORM_RANGE | good | 0 | 0 | 0 | 4 | Recent-form metrics are within valid numeric ranges. |
| RECONCILIATION_PROPAGATION | info | 0 | 0 | 0 | 0 | When score_target_reconciliation is used, all final-facing sections are regenerated from the reconciled score. |
| REPORT_COMPLETE | good | 0 | 0 | 0 | 1 | Report includes every audit result in the all-findings table. |
| REPORT_CSV_EXPORT | not triggered | 0 | 0 | 0 | 0 | Optional CSV exports were written for summary and problem rows. |
| RUNS_MATCH_FINAL | good | 0 | 0 | 0 | 2 | Batting/pitching runs agree with final score. |
| SCHEMA_ROOTS_PRESENT | good | 0 | 0 | 0 | 1 | Expected JSON root sections exist and can be audited. |
| SCORE_NO_TIE | good | 0 | 0 | 0 | 1 | Final MLB score has a clear winner. |
| SCORE_STEP_FINAL_MATCH | good | 0 | 0 | 0 | 1 | score_evolution simulation_result matches final score. |
| SCORE_STEP_ORDER | good | 0 | 0 | 0 | 1 | Score evolution contains the expected ordered steps. |
| STARTER_PRESENT | good | 0 | 0 | 0 | 4 | Pitching staff includes a starter or opener when expected. |
| TARGET_SCORE_DRIFT | good | 0 | 0 | 0 | 1 | Final score does not drift too far from enhanced target. |
| TEAM_RECENT_RECORD | warning | 0 | 0 | 2 | 0 | team_recent_performance wins and win_pct agree with games_analyzed. |
| TOTAL_RUNS_MATCH | good | 0 | 0 | 0 | 1 | total_runs equals away + home runs. |
| WINNER_FIELD_MATCH | good | 0 | 0 | 0 | 1 | winner field agrees with the final score. |
20260429_SF@PHI
20260429_SF@PHI.json • 2026-04-29
Final simulation needs review: critical box-score inconsistencies remain. Risk score: 350.
Action summary - what to fix first
| Level | Problem group / fix | Count | Teams | Example |
|---|---|---|---|---|
| CRITICAL | Innings Review the listed finding and decide whether to fix the data or downgrade the rule. | 1C / 0E / 0W | - | Inning runs 3-0 do not match final score 5-4. |
| CRITICAL | Score Reconciliation Review the listed finding and decide whether to fix the data or downgrade the rule. | 1C / 0E / 0W | - | score_target_reconciliation was used, but not all final-facing sections were regenerated: inning_by_inning=3-0 final=5-4 |
| WARN | Pitch count summary differs by pitcher Pitch-count rows disagree with individual pitching box-score rows. Recalculate pitch_count_summary from the same final pitcher ledger used by box_score.pitching. | 0C / 0E / 5W | PHI, SF | PHI pitch_count row for Brad Keller differs from pitching box score: runs_allowed/R: summary=1, box=2. SF pitch_count row for Erik Miller differs from pitching box score: runs_allowed/R: summary=0, box=1. |
| WARN | Current payload is not synced to final box score The final simulation box score is treated as the source of truth. Sync game.predicted_performance finalized_stats/pitcher projections after scoring_simulation, or stop comparing that pre-simulation payload as final output. | 0C / 0E / 4W | PHI, SF | PHI current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=32; H: current=9, sim=5; 2B: current=0, sim=1; RBI: current=2, sim=3; BB: current=0, sim=1; SO: current=9, sim=6; HBP: current=0, sim=2). PHI current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=4, sim=8; R: current=4, sim=5; ER: current=4, sim=3; BB: current=0, sim=1; SO: current=15, sim=8; HR: current=0, sim=2). |
| ERROR | Pitching Totals Review the listed finding and decide whether to fix the data or downgrade the rule. | 0C / 1E / 0W | PHI | simulation:PHI pitching total R=5 does not equal pitcher sum 4. |
| WARN | team_recent_performance record bug wins and win_pct do not agree. Either calculate wins correctly or derive win_pct directly as wins/games_analyzed. | 0C / 0E / 2W | PHI, SF | PHI wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. SF wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. |
Problems table - exact rows
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| CRITICAL | innings | INNING_TOTAL_RUNS | Inning runs 3-0 do not match final score 5-4. | |||||
| CRITICAL | score_reconciliation | RECONCILIATION_PROPAGATION | score_target_reconciliation was used, but not all final-facing sections were regenerated: inning_by_inning=3-0 final=5-4 | All final-facing sections must use the reconciled score. | ||||
| ERROR | pitching_totals | simulation | PHI | PITCHING_TOTALS_SUM | simulation:PHI pitching total R=5 does not equal pitcher sum 4. | 5 | 4 | |
| WARN | current_vs_final | cross-schema | PHI | CURRENT_FINALIZED_MATCH_BOX | PHI current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=32; H: current=9, sim=5; 2B: current=0, sim=1; RBI: current=2, sim=3; BB: current=0, sim=1; SO: current=9, sim=6; HBP: current=0, sim=2). | |||
| WARN | current_vs_final | cross-schema | PHI | CURRENT_FINALIZED_MATCH_BOX | PHI current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=4, sim=8; R: current=4, sim=5; ER: current=4, sim=3; BB: current=0, sim=1; SO: current=15, sim=8; HR: current=0, sim=2). | |||
| WARN | current_vs_final | cross-schema | SF | CURRENT_FINALIZED_MATCH_BOX | SF current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=35; 2B: current=0, sim=2; HR: current=0, sim=2; RBI: current=1, sim=3; BB: current=0, sim=1; SO: current=9, sim=8). | |||
| WARN | current_vs_final | cross-schema | SF | CURRENT_FINALIZED_MATCH_BOX | SF current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=5; R: current=3, sim=4; ER: current=3, sim=2; BB: current=0, sim=1; SO: current=11, sim=6). | |||
| WARN | pitch_count | simulation | PHI | Brad Keller | PITCH_COUNT_PITCHER_MATCH | PHI pitch_count row for Brad Keller differs from pitching box score: runs_allowed/R: summary=1, box=2. | ||
| WARN | pitch_count | simulation | SF | Erik Miller | PITCH_COUNT_PITCHER_MATCH | SF pitch_count row for Erik Miller differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | SF | Keaton Winn | PITCH_COUNT_PITCHER_MATCH | SF pitch_count row for Keaton Winn differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | SF | Logan Webb | PITCH_COUNT_PITCHER_MATCH | SF pitch_count row for Logan Webb differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | SF | Ryan Walker | PITCH_COUNT_PITCHER_MATCH | SF pitch_count row for Ryan Walker differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | team_recent_performance | current | PHI | TEAM_RECENT_RECORD | PHI wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | SF | TEAM_RECENT_RECORD | SF wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. |
All findings - complete audit trail
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| CRITICAL | innings | INNING_TOTAL_RUNS | Inning runs 3-0 do not match final score 5-4. | |||||
| CRITICAL | score_reconciliation | RECONCILIATION_PROPAGATION | score_target_reconciliation was used, but not all final-facing sections were regenerated: inning_by_inning=3-0 final=5-4 | All final-facing sections must use the reconciled score. | ||||
| ERROR | pitching_totals | simulation | PHI | PITCHING_TOTALS_SUM | simulation:PHI pitching total R=5 does not equal pitcher sum 4. | 5 | 4 | |
| WARN | current_vs_final | cross-schema | PHI | CURRENT_FINALIZED_MATCH_BOX | PHI current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=32; H: current=9, sim=5; 2B: current=0, sim=1; RBI: current=2, sim=3; BB: current=0, sim=1; SO: current=9, sim=6; HBP: current=0, sim=2). | |||
| WARN | current_vs_final | cross-schema | PHI | CURRENT_FINALIZED_MATCH_BOX | PHI current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=4, sim=8; R: current=4, sim=5; ER: current=4, sim=3; BB: current=0, sim=1; SO: current=15, sim=8; HR: current=0, sim=2). | |||
| WARN | current_vs_final | cross-schema | SF | CURRENT_FINALIZED_MATCH_BOX | SF current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=35; 2B: current=0, sim=2; HR: current=0, sim=2; RBI: current=1, sim=3; BB: current=0, sim=1; SO: current=9, sim=8). | |||
| WARN | current_vs_final | cross-schema | SF | CURRENT_FINALIZED_MATCH_BOX | SF current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=5; R: current=3, sim=4; ER: current=3, sim=2; BB: current=0, sim=1; SO: current=11, sim=6). | |||
| WARN | pitch_count | simulation | PHI | Brad Keller | PITCH_COUNT_PITCHER_MATCH | PHI pitch_count row for Brad Keller differs from pitching box score: runs_allowed/R: summary=1, box=2. | ||
| WARN | pitch_count | simulation | SF | Erik Miller | PITCH_COUNT_PITCHER_MATCH | SF pitch_count row for Erik Miller differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | SF | Keaton Winn | PITCH_COUNT_PITCHER_MATCH | SF pitch_count row for Keaton Winn differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | SF | Logan Webb | PITCH_COUNT_PITCHER_MATCH | SF pitch_count row for Logan Webb differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | pitch_count | simulation | SF | Ryan Walker | PITCH_COUNT_PITCHER_MATCH | SF pitch_count row for Ryan Walker differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | team_recent_performance | current | PHI | TEAM_RECENT_RECORD | PHI wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | SF | TEAM_RECENT_RECORD | SF wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. | |||
| INFO | current_payload | current | PHI | CURRENT_PITCHER_DUPLICATION | PHI pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | SF | CURRENT_PITCHER_DUPLICATION | SF pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| PASS | batting | current | PHI | BATTING_REALISM | current:PHI hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | SF | BATTING_REALISM | current:SF hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | PHI | BATTING_REALISM | simulation:PHI hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | SF | BATTING_REALISM | simulation:SF hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | PHI | BATTING_TOTALS_SUM | current:PHI batting totals equal summed player lines. | |||
| PASS | batting_totals | current | SF | BATTING_TOTALS_SUM | current:SF batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | PHI | BATTING_TOTALS_SUM | simulation:PHI batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | SF | BATTING_TOTALS_SUM | simulation:SF batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | PHI | BAT_PITCH_BB_MATCH | simulation:PHI batting walks match SF pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | PHI | BAT_PITCH_HR_MATCH | simulation:PHI batting home runs match SF pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | PHI | BAT_PITCH_H_MATCH | simulation:PHI batting hits match SF pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | PHI | BAT_PITCH_SO_MATCH | simulation:PHI batting strikeouts match SF pitching: 6. | |||
| PASS | boxscore_crosscheck | simulation | PHI | PA_BF_MATCH | simulation:PHI PA=35 matches SF BF=35. | |||
| PASS | boxscore_crosscheck | simulation | PHI | RUNS_MATCH_FINAL | simulation:PHI runs match final score and opposing pitching runs: 4. | |||
| PASS | boxscore_crosscheck | simulation | SF | BAT_PITCH_BB_MATCH | simulation:SF batting walks match PHI pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | SF | BAT_PITCH_HR_MATCH | simulation:SF batting home runs match PHI pitching: 2. | |||
| PASS | boxscore_crosscheck | simulation | SF | BAT_PITCH_H_MATCH | simulation:SF batting hits match PHI pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | SF | BAT_PITCH_SO_MATCH | simulation:SF batting strikeouts match PHI pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | SF | PA_BF_MATCH | simulation:SF PA=36 matches PHI BF=36. | |||
| PASS | boxscore_crosscheck | simulation | SF | RUNS_MATCH_FINAL | simulation:SF runs match final score and opposing pitching runs: 5. | |||
| PASS | current_payload | current | PHI | CURRENT_LINEUP_SHAPE | PHI current lineup has 9 expected positions. | |||
| PASS | current_payload | current | PHI | CURRENT_MODEL_ZERO_FALLBACK | PHI current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | PHI | CURRENT_NAMES_PRESENT | PHI current hitter names are populated. | |||
| PASS | current_payload | current | SF | CURRENT_LINEUP_SHAPE | SF current lineup has 9 expected positions. | |||
| PASS | current_payload | current | SF | CURRENT_MODEL_ZERO_FALLBACK | SF current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | SF | CURRENT_NAMES_PRESENT | SF current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.538. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.538. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.462. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 9 is reasonably close to low-score expected_total_runs 10.3. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.303/0.707. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: SF 8, PHI 5. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_SF@PHI. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: SF@PHI. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 146. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 141. | |||||
| PASS | pitch_count | simulation | PHI | PITCH_COUNT_TOTAL_MATCH | PHI pitch_count_summary total, row sum, and pitching total all match: 141. | |||
| PASS | pitch_count | simulation | SF | PITCH_COUNT_TOTAL_MATCH | SF pitch_count_summary total, row sum, and pitching total all match: 146. | |||
| PASS | pitching | current | PHI | PITCHING_REALISM | current:PHI pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | PHI | STARTER_PRESENT | current:PHI includes a starter/opener role. | |||
| PASS | pitching | current | SF | PITCHING_REALISM | current:SF pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | SF | STARTER_PRESENT | current:SF includes a starter/opener role. | |||
| PASS | pitching | simulation | PHI | PITCHING_REALISM | simulation:PHI pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | PHI | STARTER_PRESENT | simulation:PHI includes a starter/opener role. | |||
| PASS | pitching | simulation | SF | PITCHING_REALISM | simulation:SF pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | SF | STARTER_PRESENT | simulation:SF includes a starter/opener role. | |||
| PASS | pitching_totals | current | PHI | PITCHING_TOTALS_SUM | current:PHI pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | PHI | PITCHING_TOTALS_SUM | current:PHI pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | SF | PITCHING_TOTALS_SUM | current:SF pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | SF | PITCHING_TOTALS_SUM | current:SF pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | PHI | PITCHING_TOTALS_SUM | simulation:PHI pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | SF | PITCHING_TOTALS_SUM | simulation:SF pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | SF | PITCHING_TOTALS_SUM | simulation:SF pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: SF 5 - 4 PHI. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: SF 5 - 4 PHI. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: SF wins 5-4. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.538. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 6/10 (0.600). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 2/10 (0.200). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: SF wins 5-4. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: SF wins 5-4. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 5-4. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 5-4, final 5-4 (delta 0). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 9. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: SF wins 5-4. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | PHI | RECENT_FORM_RANGE | PHI recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | SF | RECENT_FORM_RANGE | SF recent hitting/pitching rates are in valid ranges. |
Passed checks
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| PASS | batting | current | PHI | BATTING_REALISM | current:PHI hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | SF | BATTING_REALISM | current:SF hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | PHI | BATTING_REALISM | simulation:PHI hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | SF | BATTING_REALISM | simulation:SF hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | PHI | BATTING_TOTALS_SUM | current:PHI batting totals equal summed player lines. | |||
| PASS | batting_totals | current | SF | BATTING_TOTALS_SUM | current:SF batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | PHI | BATTING_TOTALS_SUM | simulation:PHI batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | SF | BATTING_TOTALS_SUM | simulation:SF batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | PHI | BAT_PITCH_BB_MATCH | simulation:PHI batting walks match SF pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | PHI | BAT_PITCH_HR_MATCH | simulation:PHI batting home runs match SF pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | PHI | BAT_PITCH_H_MATCH | simulation:PHI batting hits match SF pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | PHI | BAT_PITCH_SO_MATCH | simulation:PHI batting strikeouts match SF pitching: 6. | |||
| PASS | boxscore_crosscheck | simulation | PHI | PA_BF_MATCH | simulation:PHI PA=35 matches SF BF=35. | |||
| PASS | boxscore_crosscheck | simulation | PHI | RUNS_MATCH_FINAL | simulation:PHI runs match final score and opposing pitching runs: 4. | |||
| PASS | boxscore_crosscheck | simulation | SF | BAT_PITCH_BB_MATCH | simulation:SF batting walks match PHI pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | SF | BAT_PITCH_HR_MATCH | simulation:SF batting home runs match PHI pitching: 2. | |||
| PASS | boxscore_crosscheck | simulation | SF | BAT_PITCH_H_MATCH | simulation:SF batting hits match PHI pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | SF | BAT_PITCH_SO_MATCH | simulation:SF batting strikeouts match PHI pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | SF | PA_BF_MATCH | simulation:SF PA=36 matches PHI BF=36. | |||
| PASS | boxscore_crosscheck | simulation | SF | RUNS_MATCH_FINAL | simulation:SF runs match final score and opposing pitching runs: 5. | |||
| PASS | current_payload | current | PHI | CURRENT_LINEUP_SHAPE | PHI current lineup has 9 expected positions. | |||
| PASS | current_payload | current | PHI | CURRENT_MODEL_ZERO_FALLBACK | PHI current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | PHI | CURRENT_NAMES_PRESENT | PHI current hitter names are populated. | |||
| PASS | current_payload | current | SF | CURRENT_LINEUP_SHAPE | SF current lineup has 9 expected positions. | |||
| PASS | current_payload | current | SF | CURRENT_MODEL_ZERO_FALLBACK | SF current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | SF | CURRENT_NAMES_PRESENT | SF current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.538. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.538. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.462. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 9 is reasonably close to low-score expected_total_runs 10.3. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.303/0.707. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: SF 8, PHI 5. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_SF@PHI. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: SF@PHI. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 146. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 141. | |||||
| PASS | pitch_count | simulation | PHI | PITCH_COUNT_TOTAL_MATCH | PHI pitch_count_summary total, row sum, and pitching total all match: 141. | |||
| PASS | pitch_count | simulation | SF | PITCH_COUNT_TOTAL_MATCH | SF pitch_count_summary total, row sum, and pitching total all match: 146. | |||
| PASS | pitching | current | PHI | PITCHING_REALISM | current:PHI pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | PHI | STARTER_PRESENT | current:PHI includes a starter/opener role. | |||
| PASS | pitching | current | SF | PITCHING_REALISM | current:SF pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | SF | STARTER_PRESENT | current:SF includes a starter/opener role. | |||
| PASS | pitching | simulation | PHI | PITCHING_REALISM | simulation:PHI pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | PHI | STARTER_PRESENT | simulation:PHI includes a starter/opener role. | |||
| PASS | pitching | simulation | SF | PITCHING_REALISM | simulation:SF pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | SF | STARTER_PRESENT | simulation:SF includes a starter/opener role. | |||
| PASS | pitching_totals | current | PHI | PITCHING_TOTALS_SUM | current:PHI pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | PHI | PITCHING_TOTALS_SUM | current:PHI pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | SF | PITCHING_TOTALS_SUM | current:SF pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | SF | PITCHING_TOTALS_SUM | current:SF pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | PHI | PITCHING_TOTALS_SUM | simulation:PHI pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | SF | PITCHING_TOTALS_SUM | simulation:SF pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | SF | PITCHING_TOTALS_SUM | simulation:SF pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: SF 5 - 4 PHI. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: SF 5 - 4 PHI. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: SF wins 5-4. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.538. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 6/10 (0.600). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 2/10 (0.200). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: SF wins 5-4. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: SF wins 5-4. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 5-4. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 5-4, final 5-4 (delta 0). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 9. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: SF wins 5-4. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | PHI | RECENT_FORM_RANGE | PHI recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | SF | RECENT_FORM_RANGE | SF recent hitting/pitching rates are in valid ranges. |
Info/context findings
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| INFO | current_payload | current | PHI | CURRENT_PITCHER_DUPLICATION | PHI pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | SF | CURRENT_PITCHER_DUPLICATION | SF pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. |
Score evolution
| step | away_runs | home_runs | confidence | description |
|---|---|---|---|---|
| historical_ml | 3.1044199466705322 | 5.449820518493652 | Base ML historical model prediction | |
| variance_applied | 3 | 5 | Random variance applied (0.9-1.1) | |
| enhanced_prediction | 5 | 4 | 0.572 | Enhanced ML with recent form, H2H, low-score analysis |
| capped_target | 5 | 4 | Capped at max 12 realistic runs | |
| score_target_reconciliation | 5 | 4 | Final score reconciled to enhanced target after excessive simulation drift | |
| simulation_result | 5 | 4 | Final inning-by-inning simulation result |
Inning-by-inning linescore
| team | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | R | H |
|---|---|---|---|---|---|---|---|---|---|---|---|
| SF | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 3 | 8 |
| PHI | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 5 |
Team totals - current + final simulation
| src | team | type | AB | H | 2B | 3B | HR | RBI | R | BB | SO | SF | HBP | SB | CS | IP | ER | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | SF | batting | 29 | 8 | 0 | 0 | 0 | 1 | 5 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | SF | pitching | 3 | 0 | 3 | 0 | 11 | 9.0 | 3 | 0 | 0 | ||||||||
| current | PHI | batting | 28 | 9 | 0 | 0 | 0 | 2 | 4 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | PHI | pitching | 4 | 0 | 4 | 0 | 15 | 9.0 | 4 | 0 | 0 | ||||||||
| simulation | SF | batting | 35 | 8 | 2 | 0 | 2 | 3 | 5 | 1 | 8 | 0 | 0 | ||||||
| simulation | SF | pitching | 5 | 0 | 4 | 1 | 6 | 9.0 | 2 | 35 | 146 | ||||||||
| simulation | PHI | batting | 32 | 5 | 1 | 0 | 0 | 3 | 4 | 1 | 6 | 0 | 2 | ||||||
| simulation | PHI | pitching | 8 | 2 | 5 | 1 | 8 | 9.0 | 3 | 36 | 141 |
Batting lines - current + final simulation
| src | team | order | pos | name | AB | H | 2B | 3B | HR | R | RBI | BB | SO | HBP | AVG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | SF | DH | Casey Schmitt | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | SF | 2B | Luis Arraez | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | SF | RF | Jerar Encarnacion | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | SF | SS | Willy Adames | 4 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.250 | |
| current | SF | 3B | Matt Chapman | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | SF | LF | Heliot Ramos | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | SF | 1B | Rafael Devers | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 | |
| current | SF | C | Patrick Bailey | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 | |
| current | SF | CF | Jung Hoo Lee | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | PHI | CF | Justin Crawford | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | PHI | SS | Trea Turner | 4 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.250 | |
| current | PHI | RF | Adolis García | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | PHI | 3B | Alec Bohm | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | PHI | 2B | Bryson Stott | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | PHI | C | Rafael Marchán | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | PHI | 1B | Bryce Harper | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | PHI | DH | Kyle Schwarber | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | PHI | LF | Brandon Marsh | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| simulation | SF | 1 | SS | Willy Adames | 3 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0.333 |
| simulation | SF | 2 | 3B | Matt Chapman | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.000 |
| simulation | SF | 3 | 2B | Luis Arraez | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | SF | 4 | LF | Heliot Ramos | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.250 |
| simulation | SF | 5 | 1B | Rafael Devers | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.000 |
| simulation | SF | 6 | DH | Casey Schmitt | 4 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 2 | 0 | 0.250 |
| simulation | SF | 7 | RF | Jerar Encarnacion | 4 | 2 | 0 | 0 | 1 | 1 | 1 | 0 | 2 | 0 | 0.500 |
| simulation | SF | 8 | CF | Jung Hoo Lee | 4 | 2 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0.500 |
| simulation | SF | 9 | C | Patrick Bailey | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0.250 |
| simulation | PHI | 1 | SS | Trea Turner | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0.000 |
| simulation | PHI | 2 | DH | Kyle Schwarber | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0.000 |
| simulation | PHI | 3 | 1B | Bryce Harper | 4 | 2 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.500 |
| simulation | PHI | 4 | RF | Adolis García | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0.250 |
| simulation | PHI | 5 | LF | Brandon Marsh | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.000 |
| simulation | PHI | 6 | 2B | Bryson Stott | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.000 |
| simulation | PHI | 7 | 3B | Alec Bohm | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0.000 |
| simulation | PHI | 8 | CF | Justin Crawford | 3 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0.333 |
| simulation | PHI | 9 | C | Rafael Marchán | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0.333 |
Pitching lines - current + final simulation
| src | team | order | name | role | IP | H | R | ER | BB | SO | HR | BF | Pitches | sim_ERA | season_ERA | season_WHIP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | SF | 1 | Logan Webb | Starter | 5.2 | 1 | 1 | 1 | 0 | 6 | 0 | 0 | 0 | 1.59 | 4.86 | 1.38 |
| current | SF | 2 | Matt Gage | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0.00 | 1.82 | 1.41 |
| current | SF | 3 | Caleb Kilian | Middle Reliever | 0.2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.00 | 0.91 | 1.11 |
| current | SF | 4 | Keaton Winn | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 13.50 | 2.65 | 0.59 |
| current | SF | 5 | Ryan Walker | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 13.50 | 3.40 | 1.51 |
| current | SF | 6 | Erik Miller | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4.14 | 1.61 | |
| current | PHI | 1 | Cristopher Sánchez | Starter | 6.0 | 1 | 1 | 1 | 0 | 8 | 0 | 0 | 0 | 1.50 | 2.98 | 1.63 |
| current | PHI | 2 | Brad Keller | Middle Reliever | 1.0 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 9.00 | 4.29 | 1.14 |
| current | PHI | 3 | Orion Kerkering | Middle Reliever | 0.2 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 2.90 | 1.40 |
| current | PHI | 4 | Tanner Banks | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 13.50 | 5.81 | 2.37 |
| current | PHI | 5 | Tim Mayza | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 13.50 | 4.12 | 1.05 |
| current | PHI | 6 | José Alvarado | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 9.23 | 2.44 | |
| simulation | SF | 1 | Logan Webb | Starter | 6.0 | 3 | 1 | 1 | 1 | 3 | 0 | 22 | 94 | 1.50 | 4.86 | 1.38 |
| simulation | SF | 2 | Ryan Walker | Middle Reliever | 1.0 | 0 | 1 | 1 | 0 | 1 | 0 | 4 | 17 | 9.00 | 3.40 | 1.51 |
| simulation | SF | 3 | Erik Miller | Middle Reliever | 1.0 | 2 | 1 | 0 | 0 | 2 | 0 | 6 | 22 | 0.00 | 4.14 | 1.61 |
| simulation | SF | 4 | Keaton Winn | Middle Reliever | 1.0 | 0 | 1 | 0 | 0 | 0 | 0 | 3 | 13 | 0.00 | 2.65 | 0.59 |
| simulation | PHI | 1 | Cristopher Sánchez | Starter | 5.0 | 6 | 2 | 2 | 1 | 4 | 1 | 22 | 88 | 3.60 | 2.98 | 1.63 |
| simulation | PHI | 2 | Brad Keller | Middle Reliever | 1.0 | 1 | 2 | 1 | 0 | 2 | 1 | 4 | 16 | 9.00 | 4.29 | 1.14 |
| simulation | PHI | 3 | José Alvarado | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 11 | 0.00 | 9.23 | 2.44 |
| simulation | PHI | 4 | Orion Kerkering | Middle Reliever | 1.0 | 1 | 0 | 0 | 0 | 1 | 0 | 4 | 14 | 0.00 | 2.90 | 1.40 |
| simulation | PHI | 5 | Tim Mayza | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 12 | 0.00 | 4.12 | 1.05 |
Pitch count summary
| team | pitcher | role | IP | R | H | BB | SO | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|
| SF | Logan Webb | Starter | 6.0 | 0 | 3 | 1 | 3 | 22 | 94 |
| SF | Ryan Walker | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 4 | 17 |
| SF | Erik Miller | Middle Reliever | 1.0 | 0 | 2 | 0 | 2 | 6 | 22 |
| SF | Keaton Winn | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 13 |
| PHI | Cristopher Sánchez | Starter | 5.0 | 2 | 6 | 1 | 4 | 22 | 88 |
| PHI | Brad Keller | Middle Reliever | 1.0 | 1 | 1 | 0 | 2 | 4 | 16 |
| PHI | José Alvarado | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 11 |
| PHI | Orion Kerkering | Middle Reliever | 1.0 | 0 | 1 | 0 | 1 | 4 | 14 |
| PHI | Tim Mayza | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 12 |
Audit rule catalog
| rule | status | critical | error | warning | pass | description |
|---|---|---|---|---|---|---|
| BATTING_REALISM | good | 0 | 0 | 0 | 4 | Player/team batting lines obey baseball constraints. |
| BATTING_TOTALS_SUM | good | 0 | 0 | 0 | 4 | Team batting totals equal the sum of player batting lines. |
| BAT_PITCH_BB_MATCH | good | 0 | 0 | 0 | 2 | Batting walks match opposing pitching walks allowed. |
| BAT_PITCH_HR_MATCH | good | 0 | 0 | 0 | 2 | Batting home runs match opposing pitching home runs allowed. |
| BAT_PITCH_H_MATCH | good | 0 | 0 | 0 | 2 | Batting hits match opposing pitching hits allowed. |
| BAT_PITCH_SO_MATCH | good | 0 | 0 | 0 | 2 | Batting strikeouts match opposing pitching strikeouts. |
| CONFIDENCE_RANGE | good | 0 | 0 | 0 | 5 | Confidence values are between 0 and 1. |
| CURRENT_FINALIZED_MATCH_BOX | warning | 0 | 0 | 4 | 0 | Current finalized player totals agree with final simulation box score. |
| CURRENT_LINEUP_SHAPE | good | 0 | 0 | 0 | 2 | Current predicted_performance contains a plausible 9-player lineup. |
| CURRENT_MODEL_ZERO_FALLBACK | good | 0 | 0 | 0 | 2 | Current model payload did not rely too heavily on all-zero model predictions. |
| CURRENT_NAMES_PRESENT | good | 0 | 0 | 0 | 2 | Current predicted_performance has usable player names. |
| CURRENT_PITCHER_DUPLICATION | info | 0 | 0 | 0 | 0 | Pitcher lists duplicated across current sections are detected and reconciled. |
| CURRENT_SCORE_MATCHES_SIM | good | 0 | 0 | 0 | 1 | game.predicted_runs matches scoring_simulation.final_score. |
| DATE_PARSE | good | 0 | 0 | 0 | 1 | Game date can be parsed as an ISO date. |
| FILENAME_GAME_ID_MATCH | good | 0 | 0 | 0 | 1 | Filename and game_id identify the same game. |
| FILENAME_TEAM_MATCH | good | 0 | 0 | 0 | 1 | Filename teams match the teams inside the JSON. |
| GAME_SUMMARY_MATCH | good | 0 | 0 | 0 | 1 | game_summary text agrees with final score. |
| H2H_DATA_LEAKAGE | good | 0 | 0 | 0 | 1 | Head-to-head history does not include same-day or future games in pregame mode. |
| INNINGS_COUNT | good | 0 | 0 | 0 | 1 | Inning count is valid for MLB. |
| INNING_OUTS | not triggered | 0 | 0 | 0 | 0 | Each played half inning has valid outs. |
| INNING_PLAY_SUMS | good | 0 | 0 | 0 | 1 | Detailed plays agree with inning runs, hits, outs, and pitches. |
| INNING_SEQUENCE | good | 0 | 0 | 0 | 1 | Innings are sequential and unique. |
| INNING_TOTAL_HITS | good | 0 | 0 | 0 | 1 | Inning hits sum to batting team hits. |
| INNING_TOTAL_RUNS | critical | 1 | 0 | 0 | 0 | Inning runs sum to final score. |
| LOW_SCORE_ANALYSIS | good | 0 | 0 | 0 | 3 | Low-score probability factors are valid and directionally consistent. |
| PA_BF_MATCH | good | 0 | 0 | 0 | 2 | Team plate appearances match opposing batters faced. |
| PITCHING_REALISM | good | 0 | 0 | 0 | 4 | Pitcher/team pitching lines obey baseball constraints. |
| PITCHING_TOTALS_SUM | error | 0 | 1 | 0 | 7 | Team pitching totals equal the sum of pitcher lines. |
| PITCH_COUNT_PITCHER_MATCH | warning | 0 | 0 | 5 | 0 | Pitch count summary pitcher rows agree with pitching box score. |
| PITCH_COUNT_TOTAL_MATCH | good | 0 | 0 | 0 | 4 | Pitch count summary totals match team pitching totals. |
| PITCH_DETAIL_SANITY | good | 0 | 0 | 0 | 1 | Pitch-by-pitch details have plausible values. |
| PREDICTION_COMPARISON_MATCH | good | 0 | 0 | 0 | 3 | prediction_comparison scores agree with target/final result. |
| RECENT_FORM_RANGE | good | 0 | 0 | 0 | 4 | Recent-form metrics are within valid numeric ranges. |
| RECONCILIATION_PROPAGATION | critical | 1 | 0 | 0 | 0 | When score_target_reconciliation is used, all final-facing sections are regenerated from the reconciled score. |
| REPORT_COMPLETE | good | 0 | 0 | 0 | 1 | Report includes every audit result in the all-findings table. |
| REPORT_CSV_EXPORT | not triggered | 0 | 0 | 0 | 0 | Optional CSV exports were written for summary and problem rows. |
| RUNS_MATCH_FINAL | good | 0 | 0 | 0 | 2 | Batting/pitching runs agree with final score. |
| SCHEMA_ROOTS_PRESENT | good | 0 | 0 | 0 | 1 | Expected JSON root sections exist and can be audited. |
| SCORE_NO_TIE | good | 0 | 0 | 0 | 1 | Final MLB score has a clear winner. |
| SCORE_STEP_FINAL_MATCH | good | 0 | 0 | 0 | 1 | score_evolution simulation_result matches final score. |
| SCORE_STEP_ORDER | good | 0 | 0 | 0 | 1 | Score evolution contains the expected ordered steps. |
| STARTER_PRESENT | good | 0 | 0 | 0 | 4 | Pitching staff includes a starter or opener when expected. |
| TARGET_SCORE_DRIFT | good | 0 | 0 | 0 | 1 | Final score does not drift too far from enhanced target. |
| TEAM_RECENT_RECORD | warning | 0 | 0 | 2 | 0 | team_recent_performance wins and win_pct agree with games_analyzed. |
| TOTAL_RUNS_MATCH | good | 0 | 0 | 0 | 1 | total_runs equals away + home runs. |
| WINNER_FIELD_MATCH | good | 0 | 0 | 0 | 1 | winner field agrees with the final score. |
20260429_STL@PIT
20260429_STL@PIT.json • 2026-04-29
Final simulation is structurally valid with warnings to review. Risk score: 100.
Action summary - what to fix first
| Level | Problem group / fix | Count | Teams | Example |
|---|---|---|---|---|
| WARN | Current payload is not synced to final box score The final simulation box score is treated as the source of truth. Sync game.predicted_performance finalized_stats/pitcher projections after scoring_simulation, or stop comparing that pre-simulation payload as final output. | 0C / 0E / 4W | PIT, STL | PIT current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=33; 2B: current=0, sim=1; BB: current=0, sim=3; SF: current=0, sim=1). PIT current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=7; BB: current=0, sim=1; SO: current=11, sim=7). |
| WARN | Pitch count summary differs by pitcher Pitch-count rows disagree with individual pitching box-score rows. Recalculate pitch_count_summary from the same final pitcher ledger used by box_score.pitching. | 0C / 0E / 2W | STL | STL pitch_count row for Andre Pallante differs from pitching box score: runs_allowed/R: summary=2, box=1. STL pitch_count row for Ryne Stanek differs from pitching box score: runs_allowed/R: summary=0, box=1. |
| WARN | Prediction target vs final simulation drift The inning simulation can vary from ML target, but large drift should be reviewed or explicitly documented as acceptable variance. | 0C / 0E / 2W | - | Final total runs 5 differs from low-score expected_total_runs 10.4 by more than 4. Final score drifted from enhanced target: target 5-4, final 3-2 (delta 4). |
| WARN | team_recent_performance record bug wins and win_pct do not agree. Either calculate wins correctly or derive win_pct directly as wins/games_analyzed. | 0C / 0E / 2W | PIT, STL | PIT wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. STL wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. |
Problems table - exact rows
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | PIT | CURRENT_FINALIZED_MATCH_BOX | PIT current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=33; 2B: current=0, sim=1; BB: current=0, sim=3; SF: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | PIT | CURRENT_FINALIZED_MATCH_BOX | PIT current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=7; BB: current=0, sim=1; SO: current=11, sim=7). | |||
| WARN | current_vs_final | cross-schema | STL | CURRENT_FINALIZED_MATCH_BOX | STL current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=33; H: current=8, sim=7; 2B: current=0, sim=2; BB: current=0, sim=1; SO: current=9, sim=7; SF: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | STL | CURRENT_FINALIZED_MATCH_BOX | STL current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=2, sim=7; BB: current=0, sim=3; SO: current=10, sim=9). | |||
| WARN | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 5 differs from low-score expected_total_runs 10.4 by more than 4. | |||||
| WARN | pitch_count | simulation | STL | Andre Pallante | PITCH_COUNT_PITCHER_MATCH | STL pitch_count row for Andre Pallante differs from pitching box score: runs_allowed/R: summary=2, box=1. | ||
| WARN | pitch_count | simulation | STL | Ryne Stanek | PITCH_COUNT_PITCHER_MATCH | STL pitch_count row for Ryne Stanek differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | score | TARGET_SCORE_DRIFT | Final score drifted from enhanced target: target 5-4, final 3-2 (delta 4). | |||||
| WARN | team_recent_performance | current | PIT | TEAM_RECENT_RECORD | PIT wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | STL | TEAM_RECENT_RECORD | STL wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. |
All findings - complete audit trail
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | PIT | CURRENT_FINALIZED_MATCH_BOX | PIT current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=29, sim=33; 2B: current=0, sim=1; BB: current=0, sim=3; SF: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | PIT | CURRENT_FINALIZED_MATCH_BOX | PIT current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=7; BB: current=0, sim=1; SO: current=11, sim=7). | |||
| WARN | current_vs_final | cross-schema | STL | CURRENT_FINALIZED_MATCH_BOX | STL current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=33; H: current=8, sim=7; 2B: current=0, sim=2; BB: current=0, sim=1; SO: current=9, sim=7; SF: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | STL | CURRENT_FINALIZED_MATCH_BOX | STL current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=2, sim=7; BB: current=0, sim=3; SO: current=10, sim=9). | |||
| WARN | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 5 differs from low-score expected_total_runs 10.4 by more than 4. | |||||
| WARN | pitch_count | simulation | STL | Andre Pallante | PITCH_COUNT_PITCHER_MATCH | STL pitch_count row for Andre Pallante differs from pitching box score: runs_allowed/R: summary=2, box=1. | ||
| WARN | pitch_count | simulation | STL | Ryne Stanek | PITCH_COUNT_PITCHER_MATCH | STL pitch_count row for Ryne Stanek differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | score | TARGET_SCORE_DRIFT | Final score drifted from enhanced target: target 5-4, final 3-2 (delta 4). | |||||
| WARN | team_recent_performance | current | PIT | TEAM_RECENT_RECORD | PIT wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | STL | TEAM_RECENT_RECORD | STL wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. | |||
| INFO | current_payload | current | PIT | CURRENT_PITCHER_DUPLICATION | PIT pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | STL | CURRENT_PITCHER_DUPLICATION | STL pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. | |||||
| PASS | batting | current | PIT | BATTING_REALISM | current:PIT hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | STL | BATTING_REALISM | current:STL hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | PIT | BATTING_REALISM | simulation:PIT hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | STL | BATTING_REALISM | simulation:STL hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | PIT | BATTING_TOTALS_SUM | current:PIT batting totals equal summed player lines. | |||
| PASS | batting_totals | current | STL | BATTING_TOTALS_SUM | current:STL batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | PIT | BATTING_TOTALS_SUM | simulation:PIT batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | STL | BATTING_TOTALS_SUM | simulation:STL batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | PIT | BAT_PITCH_BB_MATCH | simulation:PIT batting walks match STL pitching: 3. | |||
| PASS | boxscore_crosscheck | simulation | PIT | BAT_PITCH_HR_MATCH | simulation:PIT batting home runs match STL pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | PIT | BAT_PITCH_H_MATCH | simulation:PIT batting hits match STL pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | PIT | BAT_PITCH_SO_MATCH | simulation:PIT batting strikeouts match STL pitching: 9. | |||
| PASS | boxscore_crosscheck | simulation | PIT | PA_BF_MATCH | simulation:PIT PA=37 matches STL BF=37. | |||
| PASS | boxscore_crosscheck | simulation | PIT | RUNS_MATCH_FINAL | simulation:PIT runs match final score and opposing pitching runs: 2. | |||
| PASS | boxscore_crosscheck | simulation | STL | BAT_PITCH_BB_MATCH | simulation:STL batting walks match PIT pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | STL | BAT_PITCH_HR_MATCH | simulation:STL batting home runs match PIT pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | STL | BAT_PITCH_H_MATCH | simulation:STL batting hits match PIT pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | STL | BAT_PITCH_SO_MATCH | simulation:STL batting strikeouts match PIT pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | STL | PA_BF_MATCH | simulation:STL PA=35 matches PIT BF=35. | |||
| PASS | boxscore_crosscheck | simulation | STL | RUNS_MATCH_FINAL | simulation:STL runs match final score and opposing pitching runs: 3. | |||
| PASS | current_payload | current | PIT | CURRENT_LINEUP_SHAPE | PIT current lineup has 9 expected positions. | |||
| PASS | current_payload | current | PIT | CURRENT_MODEL_ZERO_FALLBACK | PIT current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | PIT | CURRENT_NAMES_PRESENT | PIT current hitter names are populated. | |||
| PASS | current_payload | current | STL | CURRENT_LINEUP_SHAPE | STL current lineup has 9 expected positions. | |||
| PASS | current_payload | current | STL | CURRENT_MODEL_ZERO_FALLBACK | STL current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | STL | CURRENT_NAMES_PRESENT | STL current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.557. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.557. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.443. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.276/0.652. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: STL 7, PIT 7. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: STL 3 - PIT 2. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_STL@PIT. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: STL@PIT. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 162. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 139. | |||||
| PASS | pitch_count | simulation | PIT | PITCH_COUNT_PITCHER_MATCH | PIT pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | PIT | PITCH_COUNT_TOTAL_MATCH | PIT pitch_count_summary total, row sum, and pitching total all match: 139. | |||
| PASS | pitch_count | simulation | STL | PITCH_COUNT_TOTAL_MATCH | STL pitch_count_summary total, row sum, and pitching total all match: 162. | |||
| PASS | pitching | current | PIT | PITCHING_REALISM | current:PIT pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | PIT | STARTER_PRESENT | current:PIT includes a starter/opener role. | |||
| PASS | pitching | current | STL | PITCHING_REALISM | current:STL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | STL | STARTER_PRESENT | current:STL includes a starter/opener role. | |||
| PASS | pitching | simulation | PIT | PITCHING_REALISM | simulation:PIT pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | PIT | STARTER_PRESENT | simulation:PIT includes a starter/opener role. | |||
| PASS | pitching | simulation | STL | PITCHING_REALISM | simulation:STL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | STL | STARTER_PRESENT | simulation:STL includes a starter/opener role. | |||
| PASS | pitching_totals | current | PIT | PITCHING_TOTALS_SUM | current:PIT pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | PIT | PITCHING_TOTALS_SUM | current:PIT pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | STL | PITCHING_TOTALS_SUM | current:STL pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | STL | PITCHING_TOTALS_SUM | current:STL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | PIT | PITCHING_TOTALS_SUM | simulation:PIT pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | PIT | PITCHING_TOTALS_SUM | simulation:PIT pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | STL | PITCHING_TOTALS_SUM | simulation:STL pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | STL | PITCHING_TOTALS_SUM | simulation:STL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: STL 5 - 4 PIT. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: STL 3 - 2 PIT. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: STL wins 3-2. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.557. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 5/10 (0.500). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 4/10 (0.400). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: STL wins 3-2. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: STL wins 3-2. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 3-2. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 5. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: STL wins 3-2. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | PIT | RECENT_FORM_RANGE | PIT recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | STL | RECENT_FORM_RANGE | STL recent hitting/pitching rates are in valid ranges. |
Passed checks
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| PASS | batting | current | PIT | BATTING_REALISM | current:PIT hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | STL | BATTING_REALISM | current:STL hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | PIT | BATTING_REALISM | simulation:PIT hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | STL | BATTING_REALISM | simulation:STL hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | PIT | BATTING_TOTALS_SUM | current:PIT batting totals equal summed player lines. | |||
| PASS | batting_totals | current | STL | BATTING_TOTALS_SUM | current:STL batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | PIT | BATTING_TOTALS_SUM | simulation:PIT batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | STL | BATTING_TOTALS_SUM | simulation:STL batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | PIT | BAT_PITCH_BB_MATCH | simulation:PIT batting walks match STL pitching: 3. | |||
| PASS | boxscore_crosscheck | simulation | PIT | BAT_PITCH_HR_MATCH | simulation:PIT batting home runs match STL pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | PIT | BAT_PITCH_H_MATCH | simulation:PIT batting hits match STL pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | PIT | BAT_PITCH_SO_MATCH | simulation:PIT batting strikeouts match STL pitching: 9. | |||
| PASS | boxscore_crosscheck | simulation | PIT | PA_BF_MATCH | simulation:PIT PA=37 matches STL BF=37. | |||
| PASS | boxscore_crosscheck | simulation | PIT | RUNS_MATCH_FINAL | simulation:PIT runs match final score and opposing pitching runs: 2. | |||
| PASS | boxscore_crosscheck | simulation | STL | BAT_PITCH_BB_MATCH | simulation:STL batting walks match PIT pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | STL | BAT_PITCH_HR_MATCH | simulation:STL batting home runs match PIT pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | STL | BAT_PITCH_H_MATCH | simulation:STL batting hits match PIT pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | STL | BAT_PITCH_SO_MATCH | simulation:STL batting strikeouts match PIT pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | STL | PA_BF_MATCH | simulation:STL PA=35 matches PIT BF=35. | |||
| PASS | boxscore_crosscheck | simulation | STL | RUNS_MATCH_FINAL | simulation:STL runs match final score and opposing pitching runs: 3. | |||
| PASS | current_payload | current | PIT | CURRENT_LINEUP_SHAPE | PIT current lineup has 9 expected positions. | |||
| PASS | current_payload | current | PIT | CURRENT_MODEL_ZERO_FALLBACK | PIT current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | PIT | CURRENT_NAMES_PRESENT | PIT current hitter names are populated. | |||
| PASS | current_payload | current | STL | CURRENT_LINEUP_SHAPE | STL current lineup has 9 expected positions. | |||
| PASS | current_payload | current | STL | CURRENT_MODEL_ZERO_FALLBACK | STL current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | STL | CURRENT_NAMES_PRESENT | STL current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.557. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.557. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.443. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.276/0.652. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: STL 7, PIT 7. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: STL 3 - PIT 2. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_STL@PIT. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: STL@PIT. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 162. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 139. | |||||
| PASS | pitch_count | simulation | PIT | PITCH_COUNT_PITCHER_MATCH | PIT pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | PIT | PITCH_COUNT_TOTAL_MATCH | PIT pitch_count_summary total, row sum, and pitching total all match: 139. | |||
| PASS | pitch_count | simulation | STL | PITCH_COUNT_TOTAL_MATCH | STL pitch_count_summary total, row sum, and pitching total all match: 162. | |||
| PASS | pitching | current | PIT | PITCHING_REALISM | current:PIT pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | PIT | STARTER_PRESENT | current:PIT includes a starter/opener role. | |||
| PASS | pitching | current | STL | PITCHING_REALISM | current:STL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | STL | STARTER_PRESENT | current:STL includes a starter/opener role. | |||
| PASS | pitching | simulation | PIT | PITCHING_REALISM | simulation:PIT pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | PIT | STARTER_PRESENT | simulation:PIT includes a starter/opener role. | |||
| PASS | pitching | simulation | STL | PITCHING_REALISM | simulation:STL pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | STL | STARTER_PRESENT | simulation:STL includes a starter/opener role. | |||
| PASS | pitching_totals | current | PIT | PITCHING_TOTALS_SUM | current:PIT pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | PIT | PITCHING_TOTALS_SUM | current:PIT pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | STL | PITCHING_TOTALS_SUM | current:STL pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | STL | PITCHING_TOTALS_SUM | current:STL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | PIT | PITCHING_TOTALS_SUM | simulation:PIT pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | PIT | PITCHING_TOTALS_SUM | simulation:PIT pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | STL | PITCHING_TOTALS_SUM | simulation:STL pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | STL | PITCHING_TOTALS_SUM | simulation:STL pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: STL 5 - 4 PIT. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: STL 3 - 2 PIT. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: STL wins 3-2. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.557. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 5/10 (0.500). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 4/10 (0.400). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: STL wins 3-2. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: STL wins 3-2. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 3-2. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 5. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: STL wins 3-2. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | PIT | RECENT_FORM_RANGE | PIT recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | STL | RECENT_FORM_RANGE | STL recent hitting/pitching rates are in valid ranges. |
Info/context findings
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| INFO | current_payload | current | PIT | CURRENT_PITCHER_DUPLICATION | PIT pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | STL | CURRENT_PITCHER_DUPLICATION | STL pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
Score evolution
| step | away_runs | home_runs | confidence | description |
|---|---|---|---|---|
| historical_ml | 3.8541078567504883 | 4.412198543548584 | Base ML historical model prediction | |
| variance_applied | 4 | 5 | Random variance applied (0.9-1.1) | |
| enhanced_prediction | 5 | 4 | 0.544 | Enhanced ML with recent form, H2H, low-score analysis |
| capped_target | 5 | 4 | Capped at max 12 realistic runs | |
| simulation_result | 3 | 2 | Final inning-by-inning simulation result |
Inning-by-inning linescore
| team | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | R | H |
|---|---|---|---|---|---|---|---|---|---|---|---|
| STL | 0 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 3 | 7 |
| PIT | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 2 | 7 |
Team totals - current + final simulation
| src | team | type | AB | H | 2B | 3B | HR | RBI | R | BB | SO | SF | HBP | SB | CS | IP | ER | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | STL | batting | 28 | 8 | 0 | 0 | 0 | 3 | 3 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | STL | pitching | 2 | 0 | 2 | 0 | 10 | 9.0 | 2 | 0 | 0 | ||||||||
| current | PIT | batting | 29 | 7 | 0 | 0 | 0 | 2 | 2 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | PIT | pitching | 3 | 0 | 3 | 0 | 11 | 9.0 | 3 | 0 | 0 | ||||||||
| simulation | STL | batting | 33 | 7 | 2 | 0 | 0 | 3 | 3 | 1 | 7 | 1 | 0 | ||||||
| simulation | STL | pitching | 7 | 0 | 2 | 3 | 9 | 9.0 | 2 | 37 | 162 | ||||||||
| simulation | PIT | batting | 33 | 7 | 1 | 0 | 0 | 2 | 2 | 3 | 9 | 1 | 0 | ||||||
| simulation | PIT | pitching | 7 | 0 | 3 | 1 | 7 | 9.0 | 3 | 35 | 139 |
Batting lines - current + final simulation
| src | team | order | pos | name | AB | H | 2B | 3B | HR | R | RBI | BB | SO | HBP | AVG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | STL | SS | Masyn Winn | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | STL | LF | Nathan Church | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | STL | 2B | JJ Wetherholt | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | STL | 3B | Nolan Gorman | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | STL | 1B | Alec Burleson | 4 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0.250 | |
| current | STL | CF | Victor Scott II | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 | |
| current | STL | RF | Jordan Walker | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | STL | C | Pedro Pagés | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | STL | DH | Iván Herrera | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | PIT | DH | Marcell Ozuna | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 | |
| current | PIT | 2B | Brandon Lowe | 4 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.250 | |
| current | PIT | SS | Konnor Griffin | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | PIT | 1B | Spencer Horwitz | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | PIT | RF | Ryan O'Hearn | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | PIT | 3B | Nick Gonzales | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | PIT | C | Henry Davis | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 | |
| current | PIT | LF | Bryan Reynolds | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | PIT | CF | Oneil Cruz | 4 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0.250 | |
| simulation | STL | 1 | 2B | JJ Wetherholt | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.000 |
| simulation | STL | 2 | DH | Iván Herrera | 4 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0.250 |
| simulation | STL | 3 | 1B | Alec Burleson | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 |
| simulation | STL | 4 | RF | Jordan Walker | 4 | 2 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.500 |
| simulation | STL | 5 | 3B | Nolan Gorman | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.000 |
| simulation | STL | 6 | SS | Masyn Winn | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.250 |
| simulation | STL | 7 | LF | Nathan Church | 3 | 1 | 1 | 0 | 0 | 1 | 3 | 0 | 0 | 0 | 0.333 |
| simulation | STL | 8 | C | Pedro Pagés | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | STL | 9 | CF | Victor Scott II | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 |
| simulation | PIT | 1 | CF | Oneil Cruz | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.200 |
| simulation | PIT | 2 | 2B | Brandon Lowe | 3 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 2 | 0 | 0.000 |
| simulation | PIT | 3 | LF | Bryan Reynolds | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | PIT | 4 | RF | Ryan O'Hearn | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | PIT | 5 | DH | Marcell Ozuna | 4 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.500 |
| simulation | PIT | 6 | 3B | Nick Gonzales | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | PIT | 7 | 1B | Spencer Horwitz | 4 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.750 |
| simulation | PIT | 8 | SS | Konnor Griffin | 2 | 1 | 0 | 0 | 0 | 1 | 1 | 2 | 1 | 0 | 0.500 |
| simulation | PIT | 9 | C | Henry Davis | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.000 |
Pitching lines - current + final simulation
| src | team | order | name | role | IP | H | R | ER | BB | SO | HR | BF | Pitches | sim_ERA | season_ERA | season_WHIP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | STL | 1 | Andre Pallante | Starter | 4.2 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 4.30 | 1.43 |
| current | STL | 2 | Gordon Graceffo | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 1.29 | 0.94 |
| current | STL | 3 | Riley O'Brien | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 1.34 | 0.82 |
| current | STL | 4 | George Soriano | Middle Reliever | 1.0 | 1 | 1 | 1 | 0 | 3 | 0 | 0 | 0 | 9.00 | 5.05 | 1.21 |
| current | STL | 5 | JoJo Romero | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 13.50 | 4.86 | 1.44 |
| current | STL | 6 | Ryne Stanek | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 9.89 | 2.75 | |
| current | PIT | 1 | Bubba Chandler | Starter | 4.1 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 2.08 | 5.02 | 1.55 |
| current | PIT | 2 | Isaac Mattson | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0.00 | 1.23 | 1.30 |
| current | PIT | 3 | Yohan Ramírez | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0.00 | 2.28 | 1.27 |
| current | PIT | 4 | Dennis Santana | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 13.50 | 3.41 | 1.29 |
| current | PIT | 5 | Gregory Soto | Middle Reliever | 0.2 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 1.90 | 0.85 |
| current | PIT | 6 | Mason Montgomery | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 13.50 | 4.21 | 1.59 |
| simulation | STL | 1 | Andre Pallante | Starter | 5.0 | 4 | 1 | 1 | 2 | 4 | 0 | 21 | 88 | 1.80 | 4.30 | 1.43 |
| simulation | STL | 2 | Riley O'Brien | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 15 | 0.00 | 1.34 | 0.82 |
| simulation | STL | 3 | JoJo Romero | Middle Reliever | 1.0 | 1 | 0 | 0 | 1 | 1 | 0 | 5 | 23 | 0.00 | 4.86 | 1.44 |
| simulation | STL | 4 | Ryne Stanek | Middle Reliever | 1.0 | 1 | 1 | 1 | 0 | 1 | 0 | 4 | 16 | 9.00 | 9.89 | 2.75 |
| simulation | STL | 5 | George Soriano | Middle Reliever | 1.0 | 1 | 0 | 0 | 0 | 2 | 0 | 4 | 20 | 0.00 | 5.05 | 1.21 |
| simulation | PIT | 1 | Bubba Chandler | Starter | 5.0 | 5 | 2 | 2 | 0 | 6 | 0 | 20 | 83 | 3.60 | 5.02 | 1.55 |
| simulation | PIT | 2 | Dennis Santana | Middle Reliever | 1.0 | 2 | 1 | 1 | 1 | 0 | 0 | 6 | 23 | 9.00 | 3.41 | 1.29 |
| simulation | PIT | 3 | Gregory Soto | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 8 | 0.00 | 1.90 | 0.85 |
| simulation | PIT | 4 | Isaac Mattson | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 13 | 0.00 | 1.23 | 1.30 |
| simulation | PIT | 5 | Mason Montgomery | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 12 | 0.00 | 4.21 | 1.59 |
Pitch count summary
| team | pitcher | role | IP | R | H | BB | SO | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|
| STL | Andre Pallante | Starter | 5.0 | 2 | 4 | 2 | 4 | 21 | 88 |
| STL | Riley O'Brien | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 15 |
| STL | JoJo Romero | Middle Reliever | 1.0 | 0 | 1 | 1 | 1 | 5 | 23 |
| STL | Ryne Stanek | Middle Reliever | 1.0 | 0 | 1 | 0 | 1 | 4 | 16 |
| STL | George Soriano | Middle Reliever | 1.0 | 0 | 1 | 0 | 2 | 4 | 20 |
| PIT | Bubba Chandler | Starter | 5.0 | 2 | 5 | 0 | 6 | 20 | 83 |
| PIT | Dennis Santana | Middle Reliever | 1.0 | 1 | 2 | 1 | 0 | 6 | 23 |
| PIT | Gregory Soto | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 8 |
| PIT | Isaac Mattson | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 13 |
| PIT | Mason Montgomery | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 12 |
Audit rule catalog
| rule | status | critical | error | warning | pass | description |
|---|---|---|---|---|---|---|
| BATTING_REALISM | good | 0 | 0 | 0 | 4 | Player/team batting lines obey baseball constraints. |
| BATTING_TOTALS_SUM | good | 0 | 0 | 0 | 4 | Team batting totals equal the sum of player batting lines. |
| BAT_PITCH_BB_MATCH | good | 0 | 0 | 0 | 2 | Batting walks match opposing pitching walks allowed. |
| BAT_PITCH_HR_MATCH | good | 0 | 0 | 0 | 2 | Batting home runs match opposing pitching home runs allowed. |
| BAT_PITCH_H_MATCH | good | 0 | 0 | 0 | 2 | Batting hits match opposing pitching hits allowed. |
| BAT_PITCH_SO_MATCH | good | 0 | 0 | 0 | 2 | Batting strikeouts match opposing pitching strikeouts. |
| CONFIDENCE_RANGE | good | 0 | 0 | 0 | 5 | Confidence values are between 0 and 1. |
| CURRENT_FINALIZED_MATCH_BOX | warning | 0 | 0 | 4 | 0 | Current finalized player totals agree with final simulation box score. |
| CURRENT_LINEUP_SHAPE | good | 0 | 0 | 0 | 2 | Current predicted_performance contains a plausible 9-player lineup. |
| CURRENT_MODEL_ZERO_FALLBACK | good | 0 | 0 | 0 | 2 | Current model payload did not rely too heavily on all-zero model predictions. |
| CURRENT_NAMES_PRESENT | good | 0 | 0 | 0 | 2 | Current predicted_performance has usable player names. |
| CURRENT_PITCHER_DUPLICATION | info | 0 | 0 | 0 | 0 | Pitcher lists duplicated across current sections are detected and reconciled. |
| CURRENT_SCORE_MATCHES_SIM | good | 0 | 0 | 0 | 1 | game.predicted_runs matches scoring_simulation.final_score. |
| DATE_PARSE | good | 0 | 0 | 0 | 1 | Game date can be parsed as an ISO date. |
| FILENAME_GAME_ID_MATCH | good | 0 | 0 | 0 | 1 | Filename and game_id identify the same game. |
| FILENAME_TEAM_MATCH | good | 0 | 0 | 0 | 1 | Filename teams match the teams inside the JSON. |
| GAME_SUMMARY_MATCH | good | 0 | 0 | 0 | 1 | game_summary text agrees with final score. |
| H2H_DATA_LEAKAGE | good | 0 | 0 | 0 | 1 | Head-to-head history does not include same-day or future games in pregame mode. |
| INNINGS_COUNT | good | 0 | 0 | 0 | 1 | Inning count is valid for MLB. |
| INNING_OUTS | not triggered | 0 | 0 | 0 | 0 | Each played half inning has valid outs. |
| INNING_PLAY_SUMS | good | 0 | 0 | 0 | 1 | Detailed plays agree with inning runs, hits, outs, and pitches. |
| INNING_SEQUENCE | good | 0 | 0 | 0 | 1 | Innings are sequential and unique. |
| INNING_TOTAL_HITS | good | 0 | 0 | 0 | 1 | Inning hits sum to batting team hits. |
| INNING_TOTAL_RUNS | good | 0 | 0 | 0 | 1 | Inning runs sum to final score. |
| LOW_SCORE_ANALYSIS | warning | 0 | 0 | 1 | 2 | Low-score probability factors are valid and directionally consistent. |
| PA_BF_MATCH | good | 0 | 0 | 0 | 2 | Team plate appearances match opposing batters faced. |
| PITCHING_REALISM | good | 0 | 0 | 0 | 4 | Pitcher/team pitching lines obey baseball constraints. |
| PITCHING_TOTALS_SUM | good | 0 | 0 | 0 | 8 | Team pitching totals equal the sum of pitcher lines. |
| PITCH_COUNT_PITCHER_MATCH | warning | 0 | 0 | 2 | 1 | Pitch count summary pitcher rows agree with pitching box score. |
| PITCH_COUNT_TOTAL_MATCH | good | 0 | 0 | 0 | 4 | Pitch count summary totals match team pitching totals. |
| PITCH_DETAIL_SANITY | good | 0 | 0 | 0 | 1 | Pitch-by-pitch details have plausible values. |
| PREDICTION_COMPARISON_MATCH | good | 0 | 0 | 0 | 3 | prediction_comparison scores agree with target/final result. |
| RECENT_FORM_RANGE | good | 0 | 0 | 0 | 4 | Recent-form metrics are within valid numeric ranges. |
| RECONCILIATION_PROPAGATION | info | 0 | 0 | 0 | 0 | When score_target_reconciliation is used, all final-facing sections are regenerated from the reconciled score. |
| REPORT_COMPLETE | good | 0 | 0 | 0 | 1 | Report includes every audit result in the all-findings table. |
| REPORT_CSV_EXPORT | not triggered | 0 | 0 | 0 | 0 | Optional CSV exports were written for summary and problem rows. |
| RUNS_MATCH_FINAL | good | 0 | 0 | 0 | 2 | Batting/pitching runs agree with final score. |
| SCHEMA_ROOTS_PRESENT | good | 0 | 0 | 0 | 1 | Expected JSON root sections exist and can be audited. |
| SCORE_NO_TIE | good | 0 | 0 | 0 | 1 | Final MLB score has a clear winner. |
| SCORE_STEP_FINAL_MATCH | good | 0 | 0 | 0 | 1 | score_evolution simulation_result matches final score. |
| SCORE_STEP_ORDER | good | 0 | 0 | 0 | 1 | Score evolution contains the expected ordered steps. |
| STARTER_PRESENT | good | 0 | 0 | 0 | 4 | Pitching staff includes a starter or opener when expected. |
| TARGET_SCORE_DRIFT | warning | 0 | 0 | 1 | 0 | Final score does not drift too far from enhanced target. |
| TEAM_RECENT_RECORD | warning | 0 | 0 | 2 | 0 | team_recent_performance wins and win_pct agree with games_analyzed. |
| TOTAL_RUNS_MATCH | good | 0 | 0 | 0 | 1 | total_runs equals away + home runs. |
| WINNER_FIELD_MATCH | good | 0 | 0 | 0 | 1 | winner field agrees with the final score. |
20260429_TB@CLE
20260429_TB@CLE.json • 2026-04-29
Final simulation is structurally valid with warnings to review. Risk score: 90.
Action summary - what to fix first
| Level | Problem group / fix | Count | Teams | Example |
|---|---|---|---|---|
| WARN | Current payload is not synced to final box score The final simulation box score is treated as the source of truth. Sync game.predicted_performance finalized_stats/pitcher projections after scoring_simulation, or stop comparing that pre-simulation payload as final output. | 0C / 0E / 4W | CLE, TB | CLE current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=27, sim=37; H: current=8, sim=4; 3B: current=0, sim=1; BB: current=0, sim=4; SO: current=9, sim=12). CLE current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=8; BB: current=0, sim=5; SO: current=16, sim=5). |
| WARN | Pitch count summary differs by pitcher Pitch-count rows disagree with individual pitching box-score rows. Recalculate pitch_count_summary from the same final pitcher ledger used by box_score.pitching. | 0C / 0E / 2W | CLE | CLE pitch_count row for Gavin Williams differs from pitching box score: runs_allowed/R: summary=1, box=0. CLE pitch_count row for Tim Herrin differs from pitching box score: runs_allowed/R: summary=0, box=1. |
| WARN | team_recent_performance record bug wins and win_pct do not agree. Either calculate wins correctly or derive win_pct directly as wins/games_analyzed. | 0C / 0E / 2W | CLE, TB | CLE wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. TB wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. |
| WARN | Prediction target vs final simulation drift The inning simulation can vary from ML target, but large drift should be reviewed or explicitly documented as acceptable variance. | 0C / 0E / 1W | - | Final total runs 4 differs from low-score expected_total_runs 9.8 by more than 4. |
Problems table - exact rows
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | CLE | CURRENT_FINALIZED_MATCH_BOX | CLE current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=27, sim=37; H: current=8, sim=4; 3B: current=0, sim=1; BB: current=0, sim=4; SO: current=9, sim=12). | |||
| WARN | current_vs_final | cross-schema | CLE | CURRENT_FINALIZED_MATCH_BOX | CLE current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=8; BB: current=0, sim=5; SO: current=16, sim=5). | |||
| WARN | current_vs_final | cross-schema | TB | CURRENT_FINALIZED_MATCH_BOX | TB current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=40; 2B: current=0, sim=4; RBI: current=1, sim=3; BB: current=0, sim=5; SO: current=9, sim=5; SF: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | TB | CURRENT_FINALIZED_MATCH_BOX | TB current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=1, sim=4; BB: current=0, sim=4; SO: current=15, sim=12). | |||
| WARN | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 4 differs from low-score expected_total_runs 9.8 by more than 4. | |||||
| WARN | pitch_count | simulation | CLE | Gavin Williams | PITCH_COUNT_PITCHER_MATCH | CLE pitch_count row for Gavin Williams differs from pitching box score: runs_allowed/R: summary=1, box=0. | ||
| WARN | pitch_count | simulation | CLE | Tim Herrin | PITCH_COUNT_PITCHER_MATCH | CLE pitch_count row for Tim Herrin differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | team_recent_performance | current | CLE | TEAM_RECENT_RECORD | CLE wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | TB | TEAM_RECENT_RECORD | TB wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. |
All findings - complete audit trail
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | CLE | CURRENT_FINALIZED_MATCH_BOX | CLE current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=27, sim=37; H: current=8, sim=4; 3B: current=0, sim=1; BB: current=0, sim=4; SO: current=9, sim=12). | |||
| WARN | current_vs_final | cross-schema | CLE | CURRENT_FINALIZED_MATCH_BOX | CLE current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=8; BB: current=0, sim=5; SO: current=16, sim=5). | |||
| WARN | current_vs_final | cross-schema | TB | CURRENT_FINALIZED_MATCH_BOX | TB current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=40; 2B: current=0, sim=4; RBI: current=1, sim=3; BB: current=0, sim=5; SO: current=9, sim=5; SF: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | TB | CURRENT_FINALIZED_MATCH_BOX | TB current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=1, sim=4; BB: current=0, sim=4; SO: current=15, sim=12). | |||
| WARN | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 4 differs from low-score expected_total_runs 9.8 by more than 4. | |||||
| WARN | pitch_count | simulation | CLE | Gavin Williams | PITCH_COUNT_PITCHER_MATCH | CLE pitch_count row for Gavin Williams differs from pitching box score: runs_allowed/R: summary=1, box=0. | ||
| WARN | pitch_count | simulation | CLE | Tim Herrin | PITCH_COUNT_PITCHER_MATCH | CLE pitch_count row for Tim Herrin differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | team_recent_performance | current | CLE | TEAM_RECENT_RECORD | CLE wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | TB | TEAM_RECENT_RECORD | TB wins=0 over games_analyzed=29 implies win_pct=0.000, but JSON has 0.500. | |||
| INFO | current_payload | current | CLE | CURRENT_PITCHER_DUPLICATION | CLE pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | TB | CURRENT_PITCHER_DUPLICATION | TB pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. | |||||
| PASS | batting | current | CLE | BATTING_REALISM | current:CLE hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | TB | BATTING_REALISM | current:TB hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | CLE | BATTING_REALISM | simulation:CLE hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | TB | BATTING_REALISM | simulation:TB hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | CLE | BATTING_TOTALS_SUM | current:CLE batting totals equal summed player lines. | |||
| PASS | batting_totals | current | TB | BATTING_TOTALS_SUM | current:TB batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | CLE | BATTING_TOTALS_SUM | simulation:CLE batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | TB | BATTING_TOTALS_SUM | simulation:TB batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | CLE | BAT_PITCH_BB_MATCH | simulation:CLE batting walks match TB pitching: 4. | |||
| PASS | boxscore_crosscheck | simulation | CLE | BAT_PITCH_HR_MATCH | simulation:CLE batting home runs match TB pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | CLE | BAT_PITCH_H_MATCH | simulation:CLE batting hits match TB pitching: 4. | |||
| PASS | boxscore_crosscheck | simulation | CLE | BAT_PITCH_SO_MATCH | simulation:CLE batting strikeouts match TB pitching: 12. | |||
| PASS | boxscore_crosscheck | simulation | CLE | PA_BF_MATCH | simulation:CLE PA=41 matches TB BF=41. | |||
| PASS | boxscore_crosscheck | simulation | CLE | RUNS_MATCH_FINAL | simulation:CLE runs match final score and opposing pitching runs: 1. | |||
| PASS | boxscore_crosscheck | simulation | TB | BAT_PITCH_BB_MATCH | simulation:TB batting walks match CLE pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | TB | BAT_PITCH_HR_MATCH | simulation:TB batting home runs match CLE pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | TB | BAT_PITCH_H_MATCH | simulation:TB batting hits match CLE pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | TB | BAT_PITCH_SO_MATCH | simulation:TB batting strikeouts match CLE pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | TB | PA_BF_MATCH | simulation:TB PA=46 matches CLE BF=46. | |||
| PASS | boxscore_crosscheck | simulation | TB | RUNS_MATCH_FINAL | simulation:TB runs match final score and opposing pitching runs: 3. | |||
| PASS | current_payload | current | CLE | CURRENT_LINEUP_SHAPE | CLE current lineup has 9 expected positions. | |||
| PASS | current_payload | current | CLE | CURRENT_MODEL_ZERO_FALLBACK | CLE current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | CLE | CURRENT_NAMES_PRESENT | CLE current hitter names are populated. | |||
| PASS | current_payload | current | TB | CURRENT_LINEUP_SHAPE | TB current lineup has 9 expected positions. | |||
| PASS | current_payload | current | TB | CURRENT_MODEL_ZERO_FALLBACK | TB current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | TB | CURRENT_NAMES_PRESENT | TB current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.607. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.607. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.393. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.432/0.900. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 11 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: TB 8, CLE 4. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: TB 3 - CLE 1. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_TB@CLE. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: TB@CLE. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 180. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 178. | |||||
| PASS | pitch_count | simulation | CLE | PITCH_COUNT_TOTAL_MATCH | CLE pitch_count_summary total, row sum, and pitching total all match: 178. | |||
| PASS | pitch_count | simulation | TB | PITCH_COUNT_PITCHER_MATCH | TB pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | TB | PITCH_COUNT_TOTAL_MATCH | TB pitch_count_summary total, row sum, and pitching total all match: 180. | |||
| PASS | pitching | current | CLE | PITCHING_REALISM | current:CLE pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | CLE | STARTER_PRESENT | current:CLE includes a starter/opener role. | |||
| PASS | pitching | current | TB | PITCHING_REALISM | current:TB pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | TB | STARTER_PRESENT | current:TB includes a starter/opener role. | |||
| PASS | pitching | simulation | CLE | PITCHING_REALISM | simulation:CLE pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | CLE | STARTER_PRESENT | simulation:CLE includes a starter/opener role. | |||
| PASS | pitching | simulation | TB | PITCHING_REALISM | simulation:TB pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | TB | STARTER_PRESENT | simulation:TB includes a starter/opener role. | |||
| PASS | pitching_totals | current | CLE | PITCHING_TOTALS_SUM | current:CLE pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | CLE | PITCHING_TOTALS_SUM | current:CLE pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | TB | PITCHING_TOTALS_SUM | current:TB pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | TB | PITCHING_TOTALS_SUM | current:TB pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | CLE | PITCHING_TOTALS_SUM | simulation:CLE pitching IP total matches pitcher sum: 11.0. | |||
| PASS | pitching_totals | simulation | CLE | PITCHING_TOTALS_SUM | simulation:CLE pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | TB | PITCHING_TOTALS_SUM | simulation:TB pitching IP total matches pitcher sum: 11.0. | |||
| PASS | pitching_totals | simulation | TB | PITCHING_TOTALS_SUM | simulation:TB pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: TB 3 - 1 CLE. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: TB 3 - 1 CLE. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: TB wins 3-1 (Extra Innings - 11). | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.607. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 7/10 (0.700). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 4/10 (0.400). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: TB wins 3-1 (Extra Innings - 11). | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: TB wins 3-1. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 3-1. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 3-1, final 3-1 (delta 0). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 4. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: TB wins 3-1 (Extra Innings - 11). | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | CLE | RECENT_FORM_RANGE | CLE recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | TB | RECENT_FORM_RANGE | TB recent hitting/pitching rates are in valid ranges. |
Passed checks
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| PASS | batting | current | CLE | BATTING_REALISM | current:CLE hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | TB | BATTING_REALISM | current:TB hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | CLE | BATTING_REALISM | simulation:CLE hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | TB | BATTING_REALISM | simulation:TB hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | CLE | BATTING_TOTALS_SUM | current:CLE batting totals equal summed player lines. | |||
| PASS | batting_totals | current | TB | BATTING_TOTALS_SUM | current:TB batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | CLE | BATTING_TOTALS_SUM | simulation:CLE batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | TB | BATTING_TOTALS_SUM | simulation:TB batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | CLE | BAT_PITCH_BB_MATCH | simulation:CLE batting walks match TB pitching: 4. | |||
| PASS | boxscore_crosscheck | simulation | CLE | BAT_PITCH_HR_MATCH | simulation:CLE batting home runs match TB pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | CLE | BAT_PITCH_H_MATCH | simulation:CLE batting hits match TB pitching: 4. | |||
| PASS | boxscore_crosscheck | simulation | CLE | BAT_PITCH_SO_MATCH | simulation:CLE batting strikeouts match TB pitching: 12. | |||
| PASS | boxscore_crosscheck | simulation | CLE | PA_BF_MATCH | simulation:CLE PA=41 matches TB BF=41. | |||
| PASS | boxscore_crosscheck | simulation | CLE | RUNS_MATCH_FINAL | simulation:CLE runs match final score and opposing pitching runs: 1. | |||
| PASS | boxscore_crosscheck | simulation | TB | BAT_PITCH_BB_MATCH | simulation:TB batting walks match CLE pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | TB | BAT_PITCH_HR_MATCH | simulation:TB batting home runs match CLE pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | TB | BAT_PITCH_H_MATCH | simulation:TB batting hits match CLE pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | TB | BAT_PITCH_SO_MATCH | simulation:TB batting strikeouts match CLE pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | TB | PA_BF_MATCH | simulation:TB PA=46 matches CLE BF=46. | |||
| PASS | boxscore_crosscheck | simulation | TB | RUNS_MATCH_FINAL | simulation:TB runs match final score and opposing pitching runs: 3. | |||
| PASS | current_payload | current | CLE | CURRENT_LINEUP_SHAPE | CLE current lineup has 9 expected positions. | |||
| PASS | current_payload | current | CLE | CURRENT_MODEL_ZERO_FALLBACK | CLE current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | CLE | CURRENT_NAMES_PRESENT | CLE current hitter names are populated. | |||
| PASS | current_payload | current | TB | CURRENT_LINEUP_SHAPE | TB current lineup has 9 expected positions. | |||
| PASS | current_payload | current | TB | CURRENT_MODEL_ZERO_FALLBACK | TB current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | TB | CURRENT_NAMES_PRESENT | TB current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.607. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.607. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.393. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.432/0.900. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 11 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: TB 8, CLE 4. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: TB 3 - CLE 1. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_TB@CLE. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: TB@CLE. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 180. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 178. | |||||
| PASS | pitch_count | simulation | CLE | PITCH_COUNT_TOTAL_MATCH | CLE pitch_count_summary total, row sum, and pitching total all match: 178. | |||
| PASS | pitch_count | simulation | TB | PITCH_COUNT_PITCHER_MATCH | TB pitch_count_summary pitcher rows match pitching box score. | |||
| PASS | pitch_count | simulation | TB | PITCH_COUNT_TOTAL_MATCH | TB pitch_count_summary total, row sum, and pitching total all match: 180. | |||
| PASS | pitching | current | CLE | PITCHING_REALISM | current:CLE pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | CLE | STARTER_PRESENT | current:CLE includes a starter/opener role. | |||
| PASS | pitching | current | TB | PITCHING_REALISM | current:TB pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | TB | STARTER_PRESENT | current:TB includes a starter/opener role. | |||
| PASS | pitching | simulation | CLE | PITCHING_REALISM | simulation:CLE pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | CLE | STARTER_PRESENT | simulation:CLE includes a starter/opener role. | |||
| PASS | pitching | simulation | TB | PITCHING_REALISM | simulation:TB pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | TB | STARTER_PRESENT | simulation:TB includes a starter/opener role. | |||
| PASS | pitching_totals | current | CLE | PITCHING_TOTALS_SUM | current:CLE pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | CLE | PITCHING_TOTALS_SUM | current:CLE pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | TB | PITCHING_TOTALS_SUM | current:TB pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | TB | PITCHING_TOTALS_SUM | current:TB pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | CLE | PITCHING_TOTALS_SUM | simulation:CLE pitching IP total matches pitcher sum: 11.0. | |||
| PASS | pitching_totals | simulation | CLE | PITCHING_TOTALS_SUM | simulation:CLE pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | TB | PITCHING_TOTALS_SUM | simulation:TB pitching IP total matches pitcher sum: 11.0. | |||
| PASS | pitching_totals | simulation | TB | PITCHING_TOTALS_SUM | simulation:TB pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: TB 3 - 1 CLE. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: TB 3 - 1 CLE. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: TB wins 3-1 (Extra Innings - 11). | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.607. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 7/10 (0.700). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 4/10 (0.400). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: TB wins 3-1 (Extra Innings - 11). | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: TB wins 3-1. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 3-1. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 3-1, final 3-1 (delta 0). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 4. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: TB wins 3-1 (Extra Innings - 11). | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | CLE | RECENT_FORM_RANGE | CLE recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | TB | RECENT_FORM_RANGE | TB recent hitting/pitching rates are in valid ranges. |
Info/context findings
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| INFO | current_payload | current | CLE | CURRENT_PITCHER_DUPLICATION | CLE pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | TB | CURRENT_PITCHER_DUPLICATION | TB pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
Score evolution
| step | away_runs | home_runs | confidence | description |
|---|---|---|---|---|
| historical_ml | 2.9961419105529785 | 3.8344438076019287 | Base ML historical model prediction | |
| variance_applied | 3 | 4 | Random variance applied (0.9-1.1) | |
| enhanced_prediction | 3 | 1 | 0.690 | Enhanced ML with recent form, H2H, low-score analysis |
| capped_target | 3 | 1 | Capped at max 12 realistic runs | |
| simulation_result | 3 | 1 | Final inning-by-inning simulation result |
Inning-by-inning linescore
| team | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | R | H |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TB | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 3 | 8 |
| CLE | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 4 |
Team totals - current + final simulation
| src | team | type | AB | H | 2B | 3B | HR | RBI | R | BB | SO | SF | HBP | SB | CS | IP | ER | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | TB | batting | 28 | 8 | 0 | 0 | 0 | 1 | 3 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | TB | pitching | 1 | 0 | 1 | 0 | 15 | 9.0 | 1 | 0 | 0 | ||||||||
| current | CLE | batting | 27 | 8 | 0 | 0 | 0 | 1 | 1 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | CLE | pitching | 3 | 0 | 3 | 0 | 16 | 9.0 | 3 | 0 | 0 | ||||||||
| simulation | TB | batting | 40 | 8 | 4 | 0 | 0 | 3 | 3 | 5 | 5 | 1 | 0 | ||||||
| simulation | TB | pitching | 4 | 0 | 1 | 4 | 12 | 11.0 | 1 | 41 | 180 | ||||||||
| simulation | CLE | batting | 37 | 4 | 0 | 1 | 0 | 1 | 1 | 4 | 12 | 0 | 0 | ||||||
| simulation | CLE | pitching | 8 | 0 | 3 | 5 | 5 | 11.0 | 3 | 46 | 178 |
Batting lines - current + final simulation
| src | team | order | pos | name | AB | H | 2B | 3B | HR | R | RBI | BB | SO | HBP | AVG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | TB | 2B | Ben Williamson | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | TB | LF | Chandler Simpson | 4 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.250 | |
| current | TB | 3B | Junior Caminero | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | TB | RF | Jake Fraley | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | TB | DH | Yandy Díaz | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | TB | 1B | Jonathan Aranda | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | TB | C | Nick Fortes | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | TB | CF | Cedric Mullins | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | TB | SS | Taylor Walls | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 | |
| current | CLE | RF | Angel Martínez | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CLE | CF | Daniel Schneemann | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CLE | 2B | Travis Bazzana | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CLE | 3B | José Ramírez | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CLE | DH | Chase DeLauter | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CLE | C | Bo Naylor | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 | |
| current | CLE | 1B | Kyle Manzardo | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | CLE | SS | Brayan Rocchio | 3 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0.333 | |
| current | CLE | LF | Steven Kwan | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| simulation | TB | 1 | LF | Chandler Simpson | 6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.000 |
| simulation | TB | 2 | 3B | Junior Caminero | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.000 |
| simulation | TB | 3 | 1B | Jonathan Aranda | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | TB | 4 | DH | Yandy Díaz | 5 | 3 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0.600 |
| simulation | TB | 5 | RF | Jake Fraley | 4 | 2 | 2 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.500 |
| simulation | TB | 6 | 2B | Ben Williamson | 4 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0.250 |
| simulation | TB | 7 | CF | Cedric Mullins | 2 | 0 | 0 | 0 | 0 | 1 | 1 | 2 | 0 | 0 | 0.000 |
| simulation | TB | 8 | C | Nick Fortes | 5 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.200 |
| simulation | TB | 9 | SS | Taylor Walls | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0.250 |
| simulation | CLE | 1 | LF | Steven Kwan | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.000 |
| simulation | CLE | 2 | DH | Chase DeLauter | 5 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0.200 |
| simulation | CLE | 3 | 3B | José Ramírez | 4 | 2 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0.500 |
| simulation | CLE | 4 | 1B | Kyle Manzardo | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0.000 |
| simulation | CLE | 5 | CF | Daniel Schneemann | 5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0.200 |
| simulation | CLE | 6 | RF | Angel Martínez | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0.000 |
| simulation | CLE | 7 | 2B | Travis Bazzana | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 3 | 0 | 0.000 |
| simulation | CLE | 8 | C | Bo Naylor | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | CLE | 9 | SS | Brayan Rocchio | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
Pitching lines - current + final simulation
| src | team | order | name | role | IP | H | R | ER | BB | SO | HR | BF | Pitches | sim_ERA | season_ERA | season_WHIP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | TB | 1 | Drew Rasmussen | Starter | 4.0 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0.00 | 2.50 | 0.75 |
| current | TB | 2 | Ian Seymour | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0.00 | 4.09 | 1.36 |
| current | TB | 3 | Bryan Baker | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 3.24 | 1.08 |
| current | TB | 4 | Griffin Jax | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 5.00 | 1.67 |
| current | TB | 5 | Hunter Bigge | Middle Reliever | 1.0 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 9.00 | 5.45 | 1.52 |
| current | TB | 6 | Kevin Kelly | Middle Reliever | 0.2 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0.00 | 5.00 | 0.93 |
| current | CLE | 1 | Gavin Williams | Starter | 4.1 | 0 | 0 | 0 | 0 | 6 | 0 | 0 | 0 | 0.00 | 3.32 | 1.11 |
| current | CLE | 2 | Cade Smith | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0.00 | 4.15 | 1.46 |
| current | CLE | 3 | Erik Sabrowski | Middle Reliever | 1.1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 3.50 | 1.26 |
| current | CLE | 4 | Connor Brogdon | Middle Reliever | 1.0 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 9.00 | 5.94 | 1.13 |
| current | CLE | 5 | Tim Herrin | Middle Reliever | 0.2 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 13.50 | 0.00 | 1.83 |
| current | CLE | 6 | Hunter Gaddis | Middle Reliever | 0.1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 27.00 | 7.06 | 1.37 |
| simulation | TB | 1 | Drew Rasmussen | Starter | 6.0 | 1 | 0 | 0 | 2 | 6 | 0 | 21 | 88 | 0.00 | 2.50 | 0.75 |
| simulation | TB | 2 | Bryan Baker | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 0 | 4 | 23 | 0.00 | 3.24 | 1.08 |
| simulation | TB | 3 | Griffin Jax | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 15 | 0.00 | 5.00 | 1.67 |
| simulation | TB | 4 | Ian Seymour | Middle Reliever | 1.0 | 3 | 1 | 1 | 1 | 0 | 0 | 7 | 31 | 9.00 | 4.09 | 1.36 |
| simulation | TB | 5 | Yoendrys Gómez | Reliever | 2.0 | 0 | 0 | 0 | 0 | 2 | 0 | 6 | 23 | 0.00 | ||
| simulation | CLE | 1 | Gavin Williams | Starter | 5.0 | 4 | 0 | 0 | 2 | 2 | 0 | 21 | 77 | 0.00 | 3.32 | 1.11 |
| simulation | CLE | 2 | Cade Smith | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 12 | 0.00 | 4.15 | 1.46 |
| simulation | CLE | 3 | Hunter Gaddis | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 1 | 0 | 4 | 20 | 0.00 | 7.06 | 1.37 |
| simulation | CLE | 4 | Erik Sabrowski | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 11 | 0.00 | 3.50 | 1.26 |
| simulation | CLE | 5 | Tim Herrin | Middle Reliever | 1.0 | 1 | 1 | 1 | 1 | 0 | 0 | 5 | 18 | 9.00 | 0.00 | 1.83 |
| simulation | CLE | 6 | Connor Brogdon | Middle Reliever | 2.0 | 3 | 2 | 2 | 1 | 0 | 0 | 10 | 40 | 9.00 | 5.94 | 1.13 |
Pitch count summary
| team | pitcher | role | IP | R | H | BB | SO | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|
| TB | Drew Rasmussen | Starter | 6.0 | 0 | 1 | 2 | 6 | 21 | 88 |
| TB | Bryan Baker | Middle Reliever | 1.0 | 0 | 0 | 1 | 3 | 4 | 23 |
| TB | Griffin Jax | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 15 |
| TB | Ian Seymour | Middle Reliever | 1.0 | 1 | 3 | 1 | 0 | 7 | 31 |
| TB | Yoendrys Gómez | Reliever | 2.0 | 0 | 0 | 0 | 2 | 6 | 23 |
| CLE | Gavin Williams | Starter | 5.0 | 1 | 4 | 2 | 2 | 21 | 77 |
| CLE | Cade Smith | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 12 |
| CLE | Hunter Gaddis | Middle Reliever | 1.0 | 0 | 0 | 1 | 1 | 4 | 20 |
| CLE | Erik Sabrowski | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 11 |
| CLE | Tim Herrin | Middle Reliever | 1.0 | 0 | 1 | 1 | 0 | 5 | 18 |
| CLE | Connor Brogdon | Middle Reliever | 2.0 | 2 | 3 | 1 | 0 | 10 | 40 |
Audit rule catalog
| rule | status | critical | error | warning | pass | description |
|---|---|---|---|---|---|---|
| BATTING_REALISM | good | 0 | 0 | 0 | 4 | Player/team batting lines obey baseball constraints. |
| BATTING_TOTALS_SUM | good | 0 | 0 | 0 | 4 | Team batting totals equal the sum of player batting lines. |
| BAT_PITCH_BB_MATCH | good | 0 | 0 | 0 | 2 | Batting walks match opposing pitching walks allowed. |
| BAT_PITCH_HR_MATCH | good | 0 | 0 | 0 | 2 | Batting home runs match opposing pitching home runs allowed. |
| BAT_PITCH_H_MATCH | good | 0 | 0 | 0 | 2 | Batting hits match opposing pitching hits allowed. |
| BAT_PITCH_SO_MATCH | good | 0 | 0 | 0 | 2 | Batting strikeouts match opposing pitching strikeouts. |
| CONFIDENCE_RANGE | good | 0 | 0 | 0 | 5 | Confidence values are between 0 and 1. |
| CURRENT_FINALIZED_MATCH_BOX | warning | 0 | 0 | 4 | 0 | Current finalized player totals agree with final simulation box score. |
| CURRENT_LINEUP_SHAPE | good | 0 | 0 | 0 | 2 | Current predicted_performance contains a plausible 9-player lineup. |
| CURRENT_MODEL_ZERO_FALLBACK | good | 0 | 0 | 0 | 2 | Current model payload did not rely too heavily on all-zero model predictions. |
| CURRENT_NAMES_PRESENT | good | 0 | 0 | 0 | 2 | Current predicted_performance has usable player names. |
| CURRENT_PITCHER_DUPLICATION | info | 0 | 0 | 0 | 0 | Pitcher lists duplicated across current sections are detected and reconciled. |
| CURRENT_SCORE_MATCHES_SIM | good | 0 | 0 | 0 | 1 | game.predicted_runs matches scoring_simulation.final_score. |
| DATE_PARSE | good | 0 | 0 | 0 | 1 | Game date can be parsed as an ISO date. |
| FILENAME_GAME_ID_MATCH | good | 0 | 0 | 0 | 1 | Filename and game_id identify the same game. |
| FILENAME_TEAM_MATCH | good | 0 | 0 | 0 | 1 | Filename teams match the teams inside the JSON. |
| GAME_SUMMARY_MATCH | good | 0 | 0 | 0 | 1 | game_summary text agrees with final score. |
| H2H_DATA_LEAKAGE | good | 0 | 0 | 0 | 1 | Head-to-head history does not include same-day or future games in pregame mode. |
| INNINGS_COUNT | good | 0 | 0 | 0 | 1 | Inning count is valid for MLB. |
| INNING_OUTS | not triggered | 0 | 0 | 0 | 0 | Each played half inning has valid outs. |
| INNING_PLAY_SUMS | good | 0 | 0 | 0 | 1 | Detailed plays agree with inning runs, hits, outs, and pitches. |
| INNING_SEQUENCE | good | 0 | 0 | 0 | 1 | Innings are sequential and unique. |
| INNING_TOTAL_HITS | good | 0 | 0 | 0 | 1 | Inning hits sum to batting team hits. |
| INNING_TOTAL_RUNS | good | 0 | 0 | 0 | 1 | Inning runs sum to final score. |
| LOW_SCORE_ANALYSIS | warning | 0 | 0 | 1 | 2 | Low-score probability factors are valid and directionally consistent. |
| PA_BF_MATCH | good | 0 | 0 | 0 | 2 | Team plate appearances match opposing batters faced. |
| PITCHING_REALISM | good | 0 | 0 | 0 | 4 | Pitcher/team pitching lines obey baseball constraints. |
| PITCHING_TOTALS_SUM | good | 0 | 0 | 0 | 8 | Team pitching totals equal the sum of pitcher lines. |
| PITCH_COUNT_PITCHER_MATCH | warning | 0 | 0 | 2 | 1 | Pitch count summary pitcher rows agree with pitching box score. |
| PITCH_COUNT_TOTAL_MATCH | good | 0 | 0 | 0 | 4 | Pitch count summary totals match team pitching totals. |
| PITCH_DETAIL_SANITY | good | 0 | 0 | 0 | 1 | Pitch-by-pitch details have plausible values. |
| PREDICTION_COMPARISON_MATCH | good | 0 | 0 | 0 | 3 | prediction_comparison scores agree with target/final result. |
| RECENT_FORM_RANGE | good | 0 | 0 | 0 | 4 | Recent-form metrics are within valid numeric ranges. |
| RECONCILIATION_PROPAGATION | info | 0 | 0 | 0 | 0 | When score_target_reconciliation is used, all final-facing sections are regenerated from the reconciled score. |
| REPORT_COMPLETE | good | 0 | 0 | 0 | 1 | Report includes every audit result in the all-findings table. |
| REPORT_CSV_EXPORT | not triggered | 0 | 0 | 0 | 0 | Optional CSV exports were written for summary and problem rows. |
| RUNS_MATCH_FINAL | good | 0 | 0 | 0 | 2 | Batting/pitching runs agree with final score. |
| SCHEMA_ROOTS_PRESENT | good | 0 | 0 | 0 | 1 | Expected JSON root sections exist and can be audited. |
| SCORE_NO_TIE | good | 0 | 0 | 0 | 1 | Final MLB score has a clear winner. |
| SCORE_STEP_FINAL_MATCH | good | 0 | 0 | 0 | 1 | score_evolution simulation_result matches final score. |
| SCORE_STEP_ORDER | good | 0 | 0 | 0 | 1 | Score evolution contains the expected ordered steps. |
| STARTER_PRESENT | good | 0 | 0 | 0 | 4 | Pitching staff includes a starter or opener when expected. |
| TARGET_SCORE_DRIFT | good | 0 | 0 | 0 | 1 | Final score does not drift too far from enhanced target. |
| TEAM_RECENT_RECORD | warning | 0 | 0 | 2 | 0 | team_recent_performance wins and win_pct agree with games_analyzed. |
| TOTAL_RUNS_MATCH | good | 0 | 0 | 0 | 1 | total_runs equals away + home runs. |
| WINNER_FIELD_MATCH | good | 0 | 0 | 0 | 1 | winner field agrees with the final score. |
20260429_WAS@NYM
20260429_WAS@NYM.json • 2026-04-29
Final simulation is structurally valid with warnings to review. Risk score: 130.
Action summary - what to fix first
| Level | Problem group / fix | Count | Teams | Example |
|---|---|---|---|---|
| WARN | Pitch count summary differs by pitcher Pitch-count rows disagree with individual pitching box-score rows. Recalculate pitch_count_summary from the same final pitcher ledger used by box_score.pitching. | 0C / 0E / 5W | NYM, WAS | NYM pitch_count row for David Peterson differs from pitching box score: runs_allowed/R: summary=0, box=2. NYM pitch_count row for Devin Williams differs from pitching box score: runs_allowed/R: summary=2, box=0. |
| WARN | Current payload is not synced to final box score The final simulation box score is treated as the source of truth. Sync game.predicted_performance finalized_stats/pitcher projections after scoring_simulation, or stop comparing that pre-simulation payload as final output. | 0C / 0E / 4W | NYM, WAS | NYM current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=31; H: current=9, sim=7; 2B: current=0, sim=1; HR: current=0, sim=1; RBI: current=2, sim=3; BB: current=0, sim=2; SO: current=9, sim=8; HBP: current=0, sim=1). NYM current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=2, sim=4; BB: current=0, sim=5; SO: current=14, sim=10). |
| WARN | team_recent_performance record bug wins and win_pct do not agree. Either calculate wins correctly or derive win_pct directly as wins/games_analyzed. | 0C / 0E / 2W | NYM, WAS | NYM wins=0 over games_analyzed=28 implies win_pct=0.000, but JSON has 0.500. WAS wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. |
| WARN | Innings Review the listed finding and decide whether to fix the data or downgrade the rule. | 0C / 0E / 1W | - | Inning 9 home has outs=0; expected 3 for a played half inning. |
| WARN | Prediction target vs final simulation drift The inning simulation can vary from ML target, but large drift should be reviewed or explicitly documented as acceptable variance. | 0C / 0E / 1W | - | Final total runs 5 differs from low-score expected_total_runs 10.4 by more than 4. |
Problems table - exact rows
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | NYM | CURRENT_FINALIZED_MATCH_BOX | NYM current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=31; H: current=9, sim=7; 2B: current=0, sim=1; HR: current=0, sim=1; RBI: current=2, sim=3; BB: current=0, sim=2; SO: current=9, sim=8; HBP: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | NYM | CURRENT_FINALIZED_MATCH_BOX | NYM current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=2, sim=4; BB: current=0, sim=5; SO: current=14, sim=10). | |||
| WARN | current_vs_final | cross-schema | WAS | CURRENT_FINALIZED_MATCH_BOX | WAS current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=31; H: current=9, sim=4; 2B: current=0, sim=1; BB: current=1, sim=5; SO: current=9, sim=10). | |||
| WARN | current_vs_final | cross-schema | WAS | CURRENT_FINALIZED_MATCH_BOX | WAS current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=7; BB: current=0, sim=2; HR: current=0, sim=1). | |||
| WARN | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 5 differs from low-score expected_total_runs 10.4 by more than 4. | |||||
| WARN | innings | INNING_OUTS | Inning 9 home has outs=0; expected 3 for a played half inning. | |||||
| WARN | pitch_count | simulation | NYM | David Peterson | PITCH_COUNT_PITCHER_MATCH | NYM pitch_count row for David Peterson differs from pitching box score: runs_allowed/R: summary=0, box=2. | ||
| WARN | pitch_count | simulation | NYM | Devin Williams | PITCH_COUNT_PITCHER_MATCH | NYM pitch_count row for Devin Williams differs from pitching box score: runs_allowed/R: summary=2, box=0. | ||
| WARN | pitch_count | simulation | WAS | Brad Lord | PITCH_COUNT_PITCHER_MATCH | WAS pitch_count row for Brad Lord differs from pitching box score: runs_allowed/R: summary=2, box=0. | ||
| WARN | pitch_count | simulation | WAS | Cade Cavalli | PITCH_COUNT_PITCHER_MATCH | WAS pitch_count row for Cade Cavalli differs from pitching box score: runs_allowed/R: summary=1, box=2. | ||
| WARN | pitch_count | simulation | WAS | PJ Poulin | PITCH_COUNT_PITCHER_MATCH | WAS pitch_count row for PJ Poulin differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | team_recent_performance | current | NYM | TEAM_RECENT_RECORD | NYM wins=0 over games_analyzed=28 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | WAS | TEAM_RECENT_RECORD | WAS wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. |
All findings - complete audit trail
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| WARN | current_vs_final | cross-schema | NYM | CURRENT_FINALIZED_MATCH_BOX | NYM current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=31; H: current=9, sim=7; 2B: current=0, sim=1; HR: current=0, sim=1; RBI: current=2, sim=3; BB: current=0, sim=2; SO: current=9, sim=8; HBP: current=0, sim=1). | |||
| WARN | current_vs_final | cross-schema | NYM | CURRENT_FINALIZED_MATCH_BOX | NYM current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=2, sim=4; BB: current=0, sim=5; SO: current=14, sim=10). | |||
| WARN | current_vs_final | cross-schema | WAS | CURRENT_FINALIZED_MATCH_BOX | WAS current finalized batting totals differ from final simulation box score. This is a synchronization/projection warning, not a final box-score failure (AB: current=28, sim=31; H: current=9, sim=4; 2B: current=0, sim=1; BB: current=1, sim=5; SO: current=9, sim=10). | |||
| WARN | current_vs_final | cross-schema | WAS | CURRENT_FINALIZED_MATCH_BOX | WAS current pitcher projections differ from final simulation pitching box score. This is a synchronization/projection warning, not a final box-score failure (H: current=3, sim=7; BB: current=0, sim=2; HR: current=0, sim=1). | |||
| WARN | enhanced_prediction | LOW_SCORE_ANALYSIS | Final total runs 5 differs from low-score expected_total_runs 10.4 by more than 4. | |||||
| WARN | innings | INNING_OUTS | Inning 9 home has outs=0; expected 3 for a played half inning. | |||||
| WARN | pitch_count | simulation | NYM | David Peterson | PITCH_COUNT_PITCHER_MATCH | NYM pitch_count row for David Peterson differs from pitching box score: runs_allowed/R: summary=0, box=2. | ||
| WARN | pitch_count | simulation | NYM | Devin Williams | PITCH_COUNT_PITCHER_MATCH | NYM pitch_count row for Devin Williams differs from pitching box score: runs_allowed/R: summary=2, box=0. | ||
| WARN | pitch_count | simulation | WAS | Brad Lord | PITCH_COUNT_PITCHER_MATCH | WAS pitch_count row for Brad Lord differs from pitching box score: runs_allowed/R: summary=2, box=0. | ||
| WARN | pitch_count | simulation | WAS | Cade Cavalli | PITCH_COUNT_PITCHER_MATCH | WAS pitch_count row for Cade Cavalli differs from pitching box score: runs_allowed/R: summary=1, box=2. | ||
| WARN | pitch_count | simulation | WAS | PJ Poulin | PITCH_COUNT_PITCHER_MATCH | WAS pitch_count row for PJ Poulin differs from pitching box score: runs_allowed/R: summary=0, box=1. | ||
| WARN | team_recent_performance | current | NYM | TEAM_RECENT_RECORD | NYM wins=0 over games_analyzed=28 implies win_pct=0.000, but JSON has 0.500. | |||
| WARN | team_recent_performance | current | WAS | TEAM_RECENT_RECORD | WAS wins=0 over games_analyzed=30 implies win_pct=0.000, but JSON has 0.500. | |||
| INFO | current_payload | current | NYM | CURRENT_PITCHER_DUPLICATION | NYM pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | WAS | CURRENT_PITCHER_DUPLICATION | WAS pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. | |||||
| PASS | batting | current | NYM | BATTING_REALISM | current:NYM hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | WAS | BATTING_REALISM | current:WAS hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | NYM | BATTING_REALISM | simulation:NYM hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | WAS | BATTING_REALISM | simulation:WAS hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | NYM | BATTING_TOTALS_SUM | current:NYM batting totals equal summed player lines. | |||
| PASS | batting_totals | current | WAS | BATTING_TOTALS_SUM | current:WAS batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | NYM | BATTING_TOTALS_SUM | simulation:NYM batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | WAS | BATTING_TOTALS_SUM | simulation:WAS batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | NYM | BAT_PITCH_BB_MATCH | simulation:NYM batting walks match WAS pitching: 2. | |||
| PASS | boxscore_crosscheck | simulation | NYM | BAT_PITCH_HR_MATCH | simulation:NYM batting home runs match WAS pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | NYM | BAT_PITCH_H_MATCH | simulation:NYM batting hits match WAS pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | NYM | BAT_PITCH_SO_MATCH | simulation:NYM batting strikeouts match WAS pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | NYM | PA_BF_MATCH | simulation:NYM PA=34 matches WAS BF=34. | |||
| PASS | boxscore_crosscheck | simulation | NYM | RUNS_MATCH_FINAL | simulation:NYM runs match final score and opposing pitching runs: 3. | |||
| PASS | boxscore_crosscheck | simulation | WAS | BAT_PITCH_BB_MATCH | simulation:WAS batting walks match NYM pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | WAS | BAT_PITCH_HR_MATCH | simulation:WAS batting home runs match NYM pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | WAS | BAT_PITCH_H_MATCH | simulation:WAS batting hits match NYM pitching: 4. | |||
| PASS | boxscore_crosscheck | simulation | WAS | BAT_PITCH_SO_MATCH | simulation:WAS batting strikeouts match NYM pitching: 10. | |||
| PASS | boxscore_crosscheck | simulation | WAS | PA_BF_MATCH | simulation:WAS PA=36 matches NYM BF=36. | |||
| PASS | boxscore_crosscheck | simulation | WAS | RUNS_MATCH_FINAL | simulation:WAS runs match final score and opposing pitching runs: 2. | |||
| PASS | current_payload | current | NYM | CURRENT_LINEUP_SHAPE | NYM current lineup has 9 expected positions. | |||
| PASS | current_payload | current | NYM | CURRENT_MODEL_ZERO_FALLBACK | NYM current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | NYM | CURRENT_NAMES_PRESENT | NYM current hitter names are populated. | |||
| PASS | current_payload | current | WAS | CURRENT_LINEUP_SHAPE | WAS current lineup has 9 expected positions. | |||
| PASS | current_payload | current | WAS | CURRENT_MODEL_ZERO_FALLBACK | WAS current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | WAS | CURRENT_NAMES_PRESENT | WAS current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.448. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.552. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.552. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.276/0.652. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: WAS 4, NYM 7. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: WAS 2 - NYM 3. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_WAS@NYM. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: WAS@NYM. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 134. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 155. | |||||
| PASS | pitch_count | simulation | NYM | PITCH_COUNT_TOTAL_MATCH | NYM pitch_count_summary total, row sum, and pitching total all match: 155. | |||
| PASS | pitch_count | simulation | WAS | PITCH_COUNT_TOTAL_MATCH | WAS pitch_count_summary total, row sum, and pitching total all match: 134. | |||
| PASS | pitching | current | NYM | PITCHING_REALISM | current:NYM pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | NYM | STARTER_PRESENT | current:NYM includes a starter/opener role. | |||
| PASS | pitching | current | WAS | PITCHING_REALISM | current:WAS pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | WAS | STARTER_PRESENT | current:WAS includes a starter/opener role. | |||
| PASS | pitching | simulation | NYM | PITCHING_REALISM | simulation:NYM pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | NYM | STARTER_PRESENT | simulation:NYM includes a starter/opener role. | |||
| PASS | pitching | simulation | WAS | PITCHING_REALISM | simulation:WAS pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | WAS | STARTER_PRESENT | simulation:WAS includes a starter/opener role. | |||
| PASS | pitching_totals | current | NYM | PITCHING_TOTALS_SUM | current:NYM pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | NYM | PITCHING_TOTALS_SUM | current:NYM pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | WAS | PITCHING_TOTALS_SUM | current:WAS pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | current | WAS | PITCHING_TOTALS_SUM | current:WAS pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | NYM | PITCHING_TOTALS_SUM | simulation:NYM pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | NYM | PITCHING_TOTALS_SUM | simulation:NYM pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | WAS | PITCHING_TOTALS_SUM | simulation:WAS pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | simulation | WAS | PITCHING_TOTALS_SUM | simulation:WAS pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: WAS 3 - 4 NYM. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: WAS 2 - 3 NYM. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: NYM wins 3-2. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.552. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 4/10 (0.400). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 3/10 (0.300). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: NYM wins 3-2. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: NYM wins 2-3. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 2-3. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 3-4, final 2-3 (delta 2). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 5. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: NYM wins 3-2. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | NYM | RECENT_FORM_RANGE | NYM recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | WAS | RECENT_FORM_RANGE | WAS recent hitting/pitching rates are in valid ranges. |
Passed checks
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| PASS | batting | current | NYM | BATTING_REALISM | current:NYM hitter lines pass basic baseball constraints. | |||
| PASS | batting | current | WAS | BATTING_REALISM | current:WAS hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | NYM | BATTING_REALISM | simulation:NYM hitter lines pass basic baseball constraints. | |||
| PASS | batting | simulation | WAS | BATTING_REALISM | simulation:WAS hitter lines pass basic baseball constraints. | |||
| PASS | batting_totals | current | NYM | BATTING_TOTALS_SUM | current:NYM batting totals equal summed player lines. | |||
| PASS | batting_totals | current | WAS | BATTING_TOTALS_SUM | current:WAS batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | NYM | BATTING_TOTALS_SUM | simulation:NYM batting totals equal summed player lines. | |||
| PASS | batting_totals | simulation | WAS | BATTING_TOTALS_SUM | simulation:WAS batting totals equal summed player lines. | |||
| PASS | boxscore_crosscheck | simulation | NYM | BAT_PITCH_BB_MATCH | simulation:NYM batting walks match WAS pitching: 2. | |||
| PASS | boxscore_crosscheck | simulation | NYM | BAT_PITCH_HR_MATCH | simulation:NYM batting home runs match WAS pitching: 1. | |||
| PASS | boxscore_crosscheck | simulation | NYM | BAT_PITCH_H_MATCH | simulation:NYM batting hits match WAS pitching: 7. | |||
| PASS | boxscore_crosscheck | simulation | NYM | BAT_PITCH_SO_MATCH | simulation:NYM batting strikeouts match WAS pitching: 8. | |||
| PASS | boxscore_crosscheck | simulation | NYM | PA_BF_MATCH | simulation:NYM PA=34 matches WAS BF=34. | |||
| PASS | boxscore_crosscheck | simulation | NYM | RUNS_MATCH_FINAL | simulation:NYM runs match final score and opposing pitching runs: 3. | |||
| PASS | boxscore_crosscheck | simulation | WAS | BAT_PITCH_BB_MATCH | simulation:WAS batting walks match NYM pitching: 5. | |||
| PASS | boxscore_crosscheck | simulation | WAS | BAT_PITCH_HR_MATCH | simulation:WAS batting home runs match NYM pitching: 0. | |||
| PASS | boxscore_crosscheck | simulation | WAS | BAT_PITCH_H_MATCH | simulation:WAS batting hits match NYM pitching: 4. | |||
| PASS | boxscore_crosscheck | simulation | WAS | BAT_PITCH_SO_MATCH | simulation:WAS batting strikeouts match NYM pitching: 10. | |||
| PASS | boxscore_crosscheck | simulation | WAS | PA_BF_MATCH | simulation:WAS PA=36 matches NYM BF=36. | |||
| PASS | boxscore_crosscheck | simulation | WAS | RUNS_MATCH_FINAL | simulation:WAS runs match final score and opposing pitching runs: 2. | |||
| PASS | current_payload | current | NYM | CURRENT_LINEUP_SHAPE | NYM current lineup has 9 expected positions. | |||
| PASS | current_payload | current | NYM | CURRENT_MODEL_ZERO_FALLBACK | NYM current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | NYM | CURRENT_NAMES_PRESENT | NYM current hitter names are populated. | |||
| PASS | current_payload | current | WAS | CURRENT_LINEUP_SHAPE | WAS current lineup has 9 expected positions. | |||
| PASS | current_payload | current | WAS | CURRENT_MODEL_ZERO_FALLBACK | WAS current model fallback usage is limited: 0/9 hitters. | |||
| PASS | current_payload | current | WAS | CURRENT_NAMES_PRESENT | WAS current hitter names are populated. | |||
| PASS | data_leakage | H2H_DATA_LEAKAGE | All head-to-head rows are dated before the prediction game date. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | Home + away win probabilities sum to approximately 1.0. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | away_win_probability is in [0,1]: 0.448. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | confidence is in [0,1]: 0.552. | |||||
| PASS | enhanced_prediction | CONFIDENCE_RANGE | home_win_probability is in [0,1]: 0.552. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score analysis factors are non-negative. | |||||
| PASS | enhanced_prediction | LOW_SCORE_ANALYSIS | Low-score probability/confidence are valid: 0.276/0.652. | |||||
| PASS | innings | INNINGS_COUNT | inning_by_inning_summary contains 9 innings. | |||||
| PASS | innings | INNING_PLAY_SUMS | Detailed play totals match every half-inning line. | |||||
| PASS | innings | INNING_SEQUENCE | Inning numbers are sequential. | |||||
| PASS | innings | INNING_TOTAL_HITS | Inning hits match batting totals: WAS 4, NYM 7. | |||||
| PASS | innings | INNING_TOTAL_RUNS | Inning runs sum to final score: WAS 2 - NYM 3. | |||||
| PASS | metadata | DATE_PARSE | Date is valid ISO format: 2026-04-29. | |||||
| PASS | metadata | FILENAME_GAME_ID_MATCH | Filename matches game_id: 20260429_WAS@NYM. | |||||
| PASS | metadata | FILENAME_TEAM_MATCH | Filename teams match JSON teams: WAS@NYM. | |||||
| PASS | pitch_by_pitch | PITCH_DETAIL_SANITY | Pitch-by-pitch speeds and zones are within sanity ranges. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | away pitcher pitch-by-pitch count matches pitch_count_summary total: 134. | |||||
| PASS | pitch_count | PITCH_COUNT_TOTAL_MATCH | home pitcher pitch-by-pitch count matches pitch_count_summary total: 155. | |||||
| PASS | pitch_count | simulation | NYM | PITCH_COUNT_TOTAL_MATCH | NYM pitch_count_summary total, row sum, and pitching total all match: 155. | |||
| PASS | pitch_count | simulation | WAS | PITCH_COUNT_TOTAL_MATCH | WAS pitch_count_summary total, row sum, and pitching total all match: 134. | |||
| PASS | pitching | current | NYM | PITCHING_REALISM | current:NYM pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | NYM | STARTER_PRESENT | current:NYM includes a starter/opener role. | |||
| PASS | pitching | current | WAS | PITCHING_REALISM | current:WAS pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | current | WAS | STARTER_PRESENT | current:WAS includes a starter/opener role. | |||
| PASS | pitching | simulation | NYM | PITCHING_REALISM | simulation:NYM pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | NYM | STARTER_PRESENT | simulation:NYM includes a starter/opener role. | |||
| PASS | pitching | simulation | WAS | PITCHING_REALISM | simulation:WAS pitcher lines pass basic baseball constraints. | |||
| PASS | pitching | simulation | WAS | STARTER_PRESENT | simulation:WAS includes a starter/opener role. | |||
| PASS | pitching_totals | current | NYM | PITCHING_TOTALS_SUM | current:NYM pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | current | NYM | PITCHING_TOTALS_SUM | current:NYM pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | current | WAS | PITCHING_TOTALS_SUM | current:WAS pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | current | WAS | PITCHING_TOTALS_SUM | current:WAS pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | NYM | PITCHING_TOTALS_SUM | simulation:NYM pitching IP total matches pitcher sum: 9.0. | |||
| PASS | pitching_totals | simulation | NYM | PITCHING_TOTALS_SUM | simulation:NYM pitching totals equal summed pitcher lines for available fields. | |||
| PASS | pitching_totals | simulation | WAS | PITCHING_TOTALS_SUM | simulation:WAS pitching IP total matches pitcher sum: 8.0. | |||
| PASS | pitching_totals | simulation | WAS | PITCHING_TOTALS_SUM | simulation:WAS pitching totals equal summed pitcher lines for available fields. | |||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Enhanced AI score matches enhanced target: WAS 3 - 4 NYM. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation score matches final score: WAS 2 - 3 NYM. | |||||
| PASS | prediction_comparison | PREDICTION_COMPARISON_MATCH | Inning simulation winner matches final score: NYM wins 3-2. | |||||
| PASS | probability | CONFIDENCE_RANGE | Enhanced target confidence is in range: 0.552. | |||||
| PASS | recent_form | RECENT_FORM_RANGE | away recent_form record is coherent: 4/10 (0.400). | |||||
| PASS | recent_form | RECENT_FORM_RANGE | home recent_form record is coherent: 3/10 (0.300). | |||||
| PASS | report | REPORT_COMPLETE | All findings, passes, warnings, errors, and critical issues are rendered in the single HTML report. | |||||
| PASS | schema | SCHEMA_ROOTS_PRESENT | Both major schemas are present: game, scoring_simulation, game_summary, prediction_comparison. | |||||
| PASS | score | GAME_SUMMARY_MATCH | game_summary is consistent: NYM wins 3-2. | |||||
| PASS | score | SCORE_NO_TIE | Final score has a clear winner: NYM wins 2-3. | |||||
| PASS | score | SCORE_STEP_FINAL_MATCH | simulation_result step matches final score: 2-3. | |||||
| PASS | score | SCORE_STEP_ORDER | Score evolution contains the expected ordered steps. | |||||
| PASS | score | TARGET_SCORE_DRIFT | Final score is close to enhanced target: target 3-4, final 2-3 (delta 2). | |||||
| PASS | score | TOTAL_RUNS_MATCH | total_runs field matches final score total: 5. | |||||
| PASS | score | WINNER_FIELD_MATCH | winner field is consistent: NYM wins 3-2. | |||||
| PASS | score | cross-schema | CURRENT_SCORE_MATCHES_SIM | game.predicted_runs matches scoring_simulation.final_score. | ||||
| PASS | team_recent_performance | current | NYM | RECENT_FORM_RANGE | NYM recent hitting/pitching rates are in valid ranges. | |||
| PASS | team_recent_performance | current | WAS | RECENT_FORM_RANGE | WAS recent hitting/pitching rates are in valid ranges. |
Info/context findings
| Severity | Category | Source | Team | Player | Rule | Message | Value | Expected |
|---|---|---|---|---|---|---|---|---|
| INFO | current_payload | current | NYM | CURRENT_PITCHER_DUPLICATION | NYM pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | current_payload | current | WAS | CURRENT_PITCHER_DUPLICATION | WAS pitcher list appears in both predicted_performance.pitchers and player_predictions_by_position.pitchers; IDs match and were de-duplicated in this audit. | |||
| INFO | score_reconciliation | RECONCILIATION_PROPAGATION | No score_target_reconciliation step was used for this game. |
Score evolution
| step | away_runs | home_runs | confidence | description |
|---|---|---|---|---|
| historical_ml | 2.667543411254883 | 3.544468402862549 | Base ML historical model prediction | |
| variance_applied | 3 | 4 | Random variance applied (0.9-1.1) | |
| enhanced_prediction | 3 | 4 | 0.546 | Enhanced ML with recent form, H2H, low-score analysis |
| capped_target | 3 | 4 | Capped at max 12 realistic runs | |
| simulation_result | 2 | 3 | Final inning-by-inning simulation result |
Inning-by-inning linescore
| team | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | R | H |
|---|---|---|---|---|---|---|---|---|---|---|---|
| WAS | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 2 | 4 |
| NYM | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 3 | 7 |
Team totals - current + final simulation
| src | team | type | AB | H | 2B | 3B | HR | RBI | R | BB | SO | SF | HBP | SB | CS | IP | ER | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | WAS | batting | 28 | 9 | 0 | 0 | 0 | 2 | 2 | 1 | 9 | 0 | 0 | 0 | 0 | ||||
| current | WAS | pitching | 3 | 0 | 3 | 0 | 8 | 8.0 | 3 | 0 | 0 | ||||||||
| current | NYM | batting | 28 | 9 | 0 | 0 | 0 | 2 | 3 | 0 | 9 | 0 | 0 | 0 | 0 | ||||
| current | NYM | pitching | 2 | 0 | 2 | 0 | 14 | 9.0 | 2 | 0 | 0 | ||||||||
| simulation | WAS | batting | 31 | 4 | 1 | 0 | 0 | 2 | 2 | 5 | 10 | 0 | 0 | ||||||
| simulation | WAS | pitching | 7 | 1 | 3 | 2 | 8 | 8.0 | 3 | 34 | 134 | ||||||||
| simulation | NYM | batting | 31 | 7 | 1 | 0 | 1 | 3 | 3 | 2 | 8 | 0 | 1 | ||||||
| simulation | NYM | pitching | 4 | 0 | 2 | 5 | 10 | 9.0 | 2 | 36 | 155 |
Batting lines - current + final simulation
| src | team | order | pos | name | AB | H | 2B | 3B | HR | R | RBI | BB | SO | HBP | AVG |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | WAS | DH | Daylen Lile | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.250 | |
| current | WAS | CF | Jacob Young | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | WAS | LF | Joey Wiemer | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | WAS | SS | CJ Abrams | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | WAS | 1B | Curtis Mead | 3 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0.333 | |
| current | WAS | 3B | Brady House | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | WAS | 2B | Nasim Nuñez | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | WAS | C | Drew Millas | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | WAS | RF | James Wood | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0.333 | |
| current | NYM | LF | Carson Benge | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | NYM | SS | Ronny Mauricio | 3 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.333 | |
| current | NYM | RF | Brett Baty | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0.333 | |
| current | NYM | C | Francisco Alvarez | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | NYM | 2B | Marcus Semien | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | NYM | 1B | Mark Vientos | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | NYM | CF | Luis Robert Jr. | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| current | NYM | 3B | Bo Bichette | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 | |
| current | NYM | DH | Juan Soto | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.333 | |
| simulation | WAS | 1 | RF | James Wood | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0.000 |
| simulation | WAS | 2 | 1B | Curtis Mead | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.000 |
| simulation | WAS | 3 | DH | Daylen Lile | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.000 |
| simulation | WAS | 4 | 3B | Brady House | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.000 |
| simulation | WAS | 5 | SS | CJ Abrams | 3 | 2 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0.667 |
| simulation | WAS | 6 | CF | Jacob Young | 4 | 1 | 1 | 0 | 0 | 1 | 2 | 0 | 2 | 0 | 0.250 |
| simulation | WAS | 7 | LF | Joey Wiemer | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0.000 |
| simulation | WAS | 8 | 2B | Nasim Nuñez | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0.500 |
| simulation | WAS | 9 | C | Drew Millas | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0.000 |
| simulation | NYM | 1 | 3B | Bo Bichette | 4 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.250 |
| simulation | NYM | 2 | DH | Juan Soto | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0.000 |
| simulation | NYM | 3 | C | Francisco Alvarez | 4 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0.250 |
| simulation | NYM | 4 | CF | Luis Robert Jr. | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0.000 |
| simulation | NYM | 5 | RF | Brett Baty | 4 | 3 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0.750 |
| simulation | NYM | 6 | 1B | Mark Vientos | 3 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 2 | 0 | 0.000 |
| simulation | NYM | 7 | 2B | Marcus Semien | 4 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0.250 |
| simulation | NYM | 8 | LF | Carson Benge | 3 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.333 |
| simulation | NYM | 9 | SS | Ronny Mauricio | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0.000 |
Pitching lines - current + final simulation
| src | team | order | name | role | IP | H | R | ER | BB | SO | HR | BF | Pitches | sim_ERA | season_ERA | season_WHIP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| current | WAS | 1 | Cade Cavalli | Starter | 5.1 | 1 | 1 | 1 | 0 | 4 | 0 | 0 | 0 | 1.69 | 4.21 | 1.74 |
| current | WAS | 2 | Brad Lord | Middle Reliever | 1.1 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 6.75 | 4.09 | 1.16 |
| current | WAS | 3 | Gus Varland | Middle Reliever | 1.1 | 1 | 1 | 1 | 0 | 2 | 0 | 0 | 0 | 6.75 | 3.71 | 1.65 |
| current | WAS | 4 | Cionel Pérez | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 5.12 | 1.63 | |
| current | WAS | 5 | PJ Poulin | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 5.58 | 1.86 | |
| current | WAS | 6 | Richard Lovelady | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3.10 | 1.90 | |
| current | NYM | 1 | David Peterson | Starter | 5.1 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0.00 | 5.29 | 1.73 |
| current | NYM | 2 | Luke Weaver | Middle Reliever | 1.1 | 1 | 1 | 1 | 0 | 3 | 0 | 0 | 0 | 6.75 | 5.62 | 1.25 |
| current | NYM | 3 | Brooks Raley | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0.00 | 2.31 | 1.28 |
| current | NYM | 4 | Huascar Brazobán | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0.00 | 1.88 | 1.46 |
| current | NYM | 5 | Craig Kimbrel | Middle Reliever | 0.1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 27.00 | 6.14 | 1.59 |
| current | NYM | 6 | Devin Williams | Middle Reliever | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 7.40 | 2.19 | |
| simulation | WAS | 1 | Cade Cavalli | Starter | 5.0 | 3 | 2 | 2 | 0 | 6 | 1 | 18 | 72 | 3.60 | 4.21 | 1.74 |
| simulation | WAS | 2 | Gus Varland | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 12 | 0.00 | 3.71 | 1.65 |
| simulation | WAS | 3 | Cionel Pérez | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 12 | 0.00 | 5.12 | 1.63 |
| simulation | WAS | 4 | PJ Poulin | Middle Reliever | 1.0 | 1 | 1 | 1 | 0 | 1 | 0 | 5 | 17 | 9.00 | 5.58 | 1.86 |
| simulation | WAS | 5 | Brad Lord | Middle Reliever | 0.0 | 3 | 0 | 0 | 2 | 0 | 0 | 5 | 21 | 4.09 | 1.16 | |
| simulation | NYM | 1 | David Peterson | Starter | 6.0 | 2 | 2 | 2 | 1 | 4 | 0 | 21 | 78 | 3.00 | 5.29 | 1.73 |
| simulation | NYM | 2 | Devin Williams | Middle Reliever | 1.0 | 2 | 0 | 0 | 2 | 2 | 0 | 7 | 39 | 0.00 | 7.40 | 2.19 |
| simulation | NYM | 3 | Luke Weaver | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 1 | 0 | 3 | 9 | 0.00 | 5.62 | 1.25 |
| simulation | NYM | 4 | Brooks Raley | Middle Reliever | 1.0 | 0 | 0 | 0 | 2 | 3 | 0 | 5 | 29 | 0.00 | 2.31 | 1.28 |
Pitch count summary
| team | pitcher | role | IP | R | H | BB | SO | BF | Pitches |
|---|---|---|---|---|---|---|---|---|---|
| WAS | Cade Cavalli | Starter | 5.0 | 1 | 3 | 0 | 6 | 18 | 72 |
| WAS | Gus Varland | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 12 |
| WAS | Cionel Pérez | Middle Reliever | 1.0 | 0 | 0 | 0 | 0 | 3 | 12 |
| WAS | PJ Poulin | Middle Reliever | 1.0 | 0 | 1 | 0 | 1 | 5 | 17 |
| WAS | Brad Lord | Middle Reliever | 0.0 | 2 | 3 | 2 | 0 | 5 | 21 |
| NYM | David Peterson | Starter | 6.0 | 0 | 2 | 1 | 4 | 21 | 78 |
| NYM | Devin Williams | Middle Reliever | 1.0 | 2 | 2 | 2 | 2 | 7 | 39 |
| NYM | Luke Weaver | Middle Reliever | 1.0 | 0 | 0 | 0 | 1 | 3 | 9 |
| NYM | Brooks Raley | Middle Reliever | 1.0 | 0 | 0 | 2 | 3 | 5 | 29 |
Audit rule catalog
| rule | status | critical | error | warning | pass | description |
|---|---|---|---|---|---|---|
| BATTING_REALISM | good | 0 | 0 | 0 | 4 | Player/team batting lines obey baseball constraints. |
| BATTING_TOTALS_SUM | good | 0 | 0 | 0 | 4 | Team batting totals equal the sum of player batting lines. |
| BAT_PITCH_BB_MATCH | good | 0 | 0 | 0 | 2 | Batting walks match opposing pitching walks allowed. |
| BAT_PITCH_HR_MATCH | good | 0 | 0 | 0 | 2 | Batting home runs match opposing pitching home runs allowed. |
| BAT_PITCH_H_MATCH | good | 0 | 0 | 0 | 2 | Batting hits match opposing pitching hits allowed. |
| BAT_PITCH_SO_MATCH | good | 0 | 0 | 0 | 2 | Batting strikeouts match opposing pitching strikeouts. |
| CONFIDENCE_RANGE | good | 0 | 0 | 0 | 5 | Confidence values are between 0 and 1. |
| CURRENT_FINALIZED_MATCH_BOX | warning | 0 | 0 | 4 | 0 | Current finalized player totals agree with final simulation box score. |
| CURRENT_LINEUP_SHAPE | good | 0 | 0 | 0 | 2 | Current predicted_performance contains a plausible 9-player lineup. |
| CURRENT_MODEL_ZERO_FALLBACK | good | 0 | 0 | 0 | 2 | Current model payload did not rely too heavily on all-zero model predictions. |
| CURRENT_NAMES_PRESENT | good | 0 | 0 | 0 | 2 | Current predicted_performance has usable player names. |
| CURRENT_PITCHER_DUPLICATION | info | 0 | 0 | 0 | 0 | Pitcher lists duplicated across current sections are detected and reconciled. |
| CURRENT_SCORE_MATCHES_SIM | good | 0 | 0 | 0 | 1 | game.predicted_runs matches scoring_simulation.final_score. |
| DATE_PARSE | good | 0 | 0 | 0 | 1 | Game date can be parsed as an ISO date. |
| FILENAME_GAME_ID_MATCH | good | 0 | 0 | 0 | 1 | Filename and game_id identify the same game. |
| FILENAME_TEAM_MATCH | good | 0 | 0 | 0 | 1 | Filename teams match the teams inside the JSON. |
| GAME_SUMMARY_MATCH | good | 0 | 0 | 0 | 1 | game_summary text agrees with final score. |
| H2H_DATA_LEAKAGE | good | 0 | 0 | 0 | 1 | Head-to-head history does not include same-day or future games in pregame mode. |
| INNINGS_COUNT | good | 0 | 0 | 0 | 1 | Inning count is valid for MLB. |
| INNING_OUTS | warning | 0 | 0 | 1 | 0 | Each played half inning has valid outs. |
| INNING_PLAY_SUMS | good | 0 | 0 | 0 | 1 | Detailed plays agree with inning runs, hits, outs, and pitches. |
| INNING_SEQUENCE | good | 0 | 0 | 0 | 1 | Innings are sequential and unique. |
| INNING_TOTAL_HITS | good | 0 | 0 | 0 | 1 | Inning hits sum to batting team hits. |
| INNING_TOTAL_RUNS | good | 0 | 0 | 0 | 1 | Inning runs sum to final score. |
| LOW_SCORE_ANALYSIS | warning | 0 | 0 | 1 | 2 | Low-score probability factors are valid and directionally consistent. |
| PA_BF_MATCH | good | 0 | 0 | 0 | 2 | Team plate appearances match opposing batters faced. |
| PITCHING_REALISM | good | 0 | 0 | 0 | 4 | Pitcher/team pitching lines obey baseball constraints. |
| PITCHING_TOTALS_SUM | good | 0 | 0 | 0 | 8 | Team pitching totals equal the sum of pitcher lines. |
| PITCH_COUNT_PITCHER_MATCH | warning | 0 | 0 | 5 | 0 | Pitch count summary pitcher rows agree with pitching box score. |
| PITCH_COUNT_TOTAL_MATCH | good | 0 | 0 | 0 | 4 | Pitch count summary totals match team pitching totals. |
| PITCH_DETAIL_SANITY | good | 0 | 0 | 0 | 1 | Pitch-by-pitch details have plausible values. |
| PREDICTION_COMPARISON_MATCH | good | 0 | 0 | 0 | 3 | prediction_comparison scores agree with target/final result. |
| RECENT_FORM_RANGE | good | 0 | 0 | 0 | 4 | Recent-form metrics are within valid numeric ranges. |
| RECONCILIATION_PROPAGATION | info | 0 | 0 | 0 | 0 | When score_target_reconciliation is used, all final-facing sections are regenerated from the reconciled score. |
| REPORT_COMPLETE | good | 0 | 0 | 0 | 1 | Report includes every audit result in the all-findings table. |
| REPORT_CSV_EXPORT | not triggered | 0 | 0 | 0 | 0 | Optional CSV exports were written for summary and problem rows. |
| RUNS_MATCH_FINAL | good | 0 | 0 | 0 | 2 | Batting/pitching runs agree with final score. |
| SCHEMA_ROOTS_PRESENT | good | 0 | 0 | 0 | 1 | Expected JSON root sections exist and can be audited. |
| SCORE_NO_TIE | good | 0 | 0 | 0 | 1 | Final MLB score has a clear winner. |
| SCORE_STEP_FINAL_MATCH | good | 0 | 0 | 0 | 1 | score_evolution simulation_result matches final score. |
| SCORE_STEP_ORDER | good | 0 | 0 | 0 | 1 | Score evolution contains the expected ordered steps. |
| STARTER_PRESENT | good | 0 | 0 | 0 | 4 | Pitching staff includes a starter or opener when expected. |
| TARGET_SCORE_DRIFT | good | 0 | 0 | 0 | 1 | Final score does not drift too far from enhanced target. |
| TEAM_RECENT_RECORD | warning | 0 | 0 | 2 | 0 | team_recent_performance wins and win_pct agree with games_analyzed. |
| TOTAL_RUNS_MATCH | good | 0 | 0 | 0 | 1 | total_runs equals away + home runs. |
| WINNER_FIELD_MATCH | good | 0 | 0 | 0 | 1 | winner field agrees with the final score. |