Deep slate report — 20261008

Generated 2026-10-09T05:19:52.059923-04:00 · schema deep_slate_diagnosis_v3 · fuses prediction review + forensic deep audit + official starter lines, with a Luna post-mortem.

Process, end to end

1. Settle review
complete
1 games vs official finals
2. Forensic deep audit
incomplete
per-game probability + pitcher impact
3. Deep diagnosis
built
0 losses attributed to a root cause
4. Luna post-mortem
received
9/8 sections; 1/1 games; 5/5 causes; 7/7 sources
5. Adjustment
skipped_open_rollback_monitor
6. Gating
shadow, manual + gated
production champion unchanged

Slate summary

Games
1
Hits
1
Misses
0
Winner accuracy
100%
Mean Brier (losses)
n/a
Mean total-run bias (losses)
n/a

Source coverage receipt

Which reports actually fed the diagnosis. A source shown as missing was not silently assumed.

SourceStatusEvidence suppliedPathBytes
prediction reviewloadedofficial outcomes and scoring errors/app/output/reports/prediction_review_20261008.json17218
forensic deep auditloadedprobability, provenance, starter and decision contracts/app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20261008.json45923
continuous learningloadedpipeline-stage quality, calibration, probability lineage, score distribution, and official starter comparisons/app/output/learning/continuous_learning_daily_20261008.json245469
detailed reportloadedfull game and simulation rendering/app/output/reports/detailed_20261008.html58372
ultra detailed player auditloadedplayer-level prediction trace/app/output/reports/20261008_ultra_detailed_player_audit.html3404020
structural auditloadedall invariant findings/app/output/reports/audit_report_20261008.html244042
integrity revision auditloadedstructural audit of every post-start revision of the slate's games/app/output/reports/audit_report_20261008_integrity_revision.html126889

High-level causal issue register

Deterministic findings across data integrity, model validation, calibration, score distribution, pipeline stages, simulation, and coverage. Critical is reserved for broken evidence or an unexplained contract violation; high marks material model/process risk. Each row pairs the action to take (Do this) with the wrong conclusion to avoid (Don't conclude).

SeverityDomainFinding and evidenceAffectedAction & guardrail
HIGHscore_distributionPublished margins are compressed relative to realized margins
1/1 predictions were ≤2 runs; 1/1 actual margins were ≥4; mean predicted margin 1.00 vs actual 4.00
CLE@CHW
Do thisCheck whether predicted margins are too narrow across several recent out-of-sample slates (measuring tail coverage and margin MAE) before widening the score spread.
Don't concludeA single blowout game is not a reason to widen every score prediction.
HIGHcalibrationPublished confidence buckets were poorly aligned on this slate
weighted absolute calibration error 0.4950 across 1 games
CLE@CHW
Do thisWatch the same confidence buckets over the full rolling window before changing any calibration weight.
Don't concludeA single slate has far too few games to establish a stable calibration curve.
HIGHmodel_validationValidated run models explain very little holdout variance
home/away/total R² = 0.0021/0.0309/0.0024
CLE@CHW
Do thisTreat exact run scores as low-confidence estimates, and look for stronger features or a better target before tuning the score tails.
Don't concludeA small positive R² only means the model beats guessing the average; it does not make the exact scores reliable.
INFOcoverageEvery settled game received structural QA
2/1 games structurally audited
CLE@CHW
Do thisKeep the per-game audit receipt in every report.
Don't concludeFull audit coverage does not cancel the findings raised inside the audited games.
INFOsimulationSimulation produced no winner-direction intervention on this slate
flip candidates 0; published flips 0
CLE@CHW
Do thisMeasure the simulation's contribution across rolling slates, separating score realization from winner flipping.
Don't concludeZero winner flips is not a defect and does not mean the simulation did no score-reconciliation work.

Cross-slate trends (persistent-pattern memory)

Window: , 20260929, 20260930, 20261001, , 20261003, 20261004, 20261005, 20261006, 20261007, 20261008 (10 prior slates loaded). Highest-confidence pick loss streak: 0 slate(s). Actionable pattern detected.

Escalated persistent patterns

A finding that has repeated at or beyond the escalation streak is no longer single-slate noise. It carries its target registered lever and an action-oriented guardrail.

FindingPersistenceTarget lever(s)DirectionGuardrail
simulation_inert_on_slate11 consecutive · 11 in windowsimulation.allow_scoreconfirm the simulation module is running, not silently no-opingsimulation_inert_on_slate has persisted 11 consecutive slates; this is no longer single-slate noise. Treat it as an actionable pattern and raise the code/diagnostic action named; do not force a parameter move.
single_slate_calibration_instability6 consecutive · 9 in windowconfidence.empirical_max_weight, confidence.base_cap, confidence.moderate_capincrease empirical shrinkagesingle_slate_calibration_instability has persisted 6 consecutive slates; this is no longer single-slate noise. Treat it as an actionable pattern and propose a bounded shadow experiment against a target lever.
weak_run_model_signal6 consecutive · 9 in windowtraining.xgb.n_estimators, training.xgb.max_depth, training.xgb.learning_rateinvestigate features/target via isolated training backtest (manual)weak_run_model_signal has persisted 6 consecutive slates; this is no longer single-slate noise. Treat it as an actionable pattern and raise the code/diagnostic action named; do not force a parameter move.

Finding streaks across the window

FindingConsecutive slatesIncidencePresent nowFix type
pipeline_winner_instability03/11nocode/diagnostic
score_margin_compression14/11yesparam
simulation_inert_on_slate1111/11yescode/diagnostic
single_slate_calibration_instability69/11yesparam
weak_run_model_signal69/11yescode/diagnostic

Metric direction across the window

MetricDirectionSeries (old → new)
winner_accuracyimproving–, 1.0, 0.75, 1.0, –, 1.0, 0.5, 0.0, 1.0, 0.75, 1.0
weighted_calibration_errorregressing–, 0.4792, 0.2317, 0.4832, –, 0.4705, 0.4806, 0.5291, 0.4642, 0.2272, 0.495
margin_biasregressing–, -4.25, -2.75, -3.0, –, -0.25, 0.0, -0.5, -0.5, -1.75, -3.0
team_run_error_on_lossesimproving–, –, 2.0, –, –, –, 2.0, 3.5, –, 2.0, –

Pipeline stage regression

Every stored stage is scored against the same official finals. A later recovery remains visible; it does not erase an unstable intermediate flip.

StageWinner hitsAccuracyTeam-run MAETotal-run MAEMargin MAE
historical_ml0/10%2.7155.1475.429
variance_applied0/10%2.555
enhanced_prediction1/1100%2.553
kpi_layer1/1100%2.553
embedded_savant_run_environment1/1100%2.553
fundamental_edge_target_review1/1100%2.553
capped_target1/1100%2.553
simulation_result1/1100%2.553
published_final1/1100%2.553
TransitionΔ accuracyΔ hitsΔ team-run MAEΔ margin MAEGames whose winner/tie changed
historical_ml → variance_applied00-0.2145-0.429TB@NYY: TB → TIE
variance_applied → enhanced_prediction110-2CLE@CHW: CHW → CLE; TB@NYY: TIE → TB
enhanced_prediction → kpi_layer0000
kpi_layer → embedded_savant_run_environment0000
embedded_savant_run_environment → fundamental_edge_target_review0000
fundamental_edge_target_review → capped_target0000
capped_target → simulation_result0000
simulation_result → published_final0000

Probability lineage and calibration

All columns are pick-side probabilities, so away favorites are not accidentally compared using home-side semantics.

GameOutcomeRaw modelCalibratedGovernorScore coherencePublishedExplanation
CLE@CHWhit0.50.5050.5050.5050.505published probability matches the calibrated/governed value
Pitcher versus batter: patterns across the whole slate

One blown start is noise. The same failure repeating across the slate is a model problem. These are the repeats.

Sides analyzedBroke on pitchingBroke on offenseBothVarianceMean starter ERA errorMean lineup runs vs proj
200022.311
Trained winner blend: does it reach the published number?

The blend mixes the trained win classifier with the margin-derived probability. It is only worth its weight if its decision survives the downstream reconciliation to the projected score.

1 of 1 games: the blend picked one side and the published number picked the other. The published probability is reconciled to the integer score after the blend runs, so a blend that disagrees with the score is overwritten before publication. On those games the trained classifier changes nothing a reader sees, even where the artifact records winner_changed.

GameTrained p(home)Blended p(home)Blend favouredPublished p(home)Published sideArtifact says winner changedOutcome
CLE@CHW0.6530.576home0.495awayyeshit

Blend side survived on 0 of 1 games; the blend flagged a winner change on 1.

Repeated bias across slates, and the lever that moves it

A bias on one slate is noise. The same sign across slates, large relative to how much it moves between them, is a model defect. Only the ones that pass both tests are turned into a named parameter change; the rest are held deliberately.

starter ERA error (actual minus projected)

Mean -0.56 over 10 slates (sign shared by 0.60 of them, z = -1.67).

starters beat their projection: the run model credits opposing offenses with more than they produced.

Hold: no change: this bias is not separable from slate-to-slate noise yet

6 of 10 slates share the sign, mean -0.56 +/- 0.34 standard error: not separable from noise

lineup runs actual minus projected

Mean -0.59 over 10 slates (sign shared by 0.70 of them, z = -1.89).

lineups scored below projection: the run environment is set too high.

Hold: no change: this bias is not separable from slate-to-slate noise yet

7 of 10 slates share the sign, mean -0.59 +/- 0.31 standard error: not separable from noise

SlateGamesWinner accMean starter ERA errorMean lineup runs vs projSides broke on pitchingSides broke on offense
2026100740.7500.85-0.3812
2026100621.000-1.40-1.251
2026100520.000-1.11-0.752
2026100420.500-1.24-2.002
2026100341.000-0.95-2.254
20261002———
2026100111.0000.000.50
2026093040.7500.780.121
2026092941.000-0.76-0.503
20260928———
20260927140.643-2.33-0.1125
20260926130.5380.550.6934

Score distribution and margin compression

Narrow predicted margins next to wide actual margins is the signature the score-variance tail is too tight.

Predicted margins ≤2: 1 · Actual margins ≥4: 1
GamePred marginActual marginPred − actual
CLE@CHW14-3

Per-game evidence coverage

Expected games
1
Artifacts loaded
2
Structural audits
2
Deep-audit games
2
Learning rows
2
Starter comparisons
1

Every game, in depth (1)

CLE@CHWHIT

Predicted: CLE 5-4 (conf -0.01, toss_up)Actual: CLE 9-5Brier 0.245total bias -5
Root cause: Toss-up that went our way
Evidence-backed diagnosis
Quantified contributing factors
TeamStarterProjectedActualER err
CLEParker Messick3 ER / 15 outs2 ER / 7 outs-1
CHWHagen Smith0 ER / 8 outs0 ER / 2 outs0
Decision internals: run factors home×0.987 / away×0.987; savant lineup adjustment applied

Player-level breakdown (projected vs actual)

Every value is actual / projected. Run impact approximates how far each hitter's real line moved run expectancy from its projection; it orders the movers and is not a published stat.

Top deviations that drove the game:

Pitcher versus batter: what actually broke this game

Per-pitch matchup fields are not populated in the current feeds, so this is reconstructed from the settled box: each starter's workload-adjusted ERA, the bullpen share behind him, and the opposing lineup's real production against its projection, with the hitters who beat that projection named.

AWAY pitching

Parker Messick (CLE) threw 7 outs, 2 ER = 7.71 ERA against a projected 5.4 ERA (2.31 ERA error)

Bullpen behind him: 1 ER over 7 outs.

The HOME lineup he faced produced 0 runs on 0 hits and 0 HR, against a projected 0 runs / 0 hits (0 runs vs projection).

No individual hitter beat his projection by a meaningful margin.

Verdict: neither side broke materially - the result is closer to variance

HOME pitching

No settled pitching line for this club. The forecast named Hagen Smith (CHW) at a projected 0 ERA, but the per-player feed carries no pitching row for him in this game, so the actual-versus-projected comparison cannot be made on this side. That is a source-coverage gap in the settled box, not a forecasting failure.

Bullpen behind him: 0 ER over 0 outs.

The AWAY lineup he faced produced 7 runs on 8 hits and 1 HR, against a projected 5 runs / 6 hits (2 runs vs projection).

Who did the damage to him:

  • José Ramírez: 2-for-5, 1 HR, 3 RBI [+1.54 runs vs projection] season xwOBA 0.325, above average - real projection error
  • Steven Kwan: 1-for-3, 0 HR, 0 RBI [+1.13 runs vs projection] season xwOBA 0.328, above average - real projection error
  • Travis Bazzana: 1-for-4, 0 HR, 1 RBI [+0.78 runs vs projection] season xwOBA 0.299, below average - a good day, not a model error

Verdict: neither side broke materially - the result is closer to variance

Starting pitchers & relievers: actual / projected + context (ERA is workload-aware: ER over 9 innings, so a short blow-up is not read like a quality start; ERA error in parentheses when material. exp BB and exp SO are the continuous rate expectations. The integer beside each is a simulation draw reconciled to the opposing simulated batting box, so it is not the line that ranks pitchers: on the 2026-09-07 slate the integers published 39 walks and 121 strikeouts against 51 and 130 real, while these expectations landed on 50.4 and 132.6.)

PitcherTeamOutsERAERHHRBBexp BBSOexp SOContext (as-of)
CLEParker Messick (Starter)7 / 157.71 / 5.42 / 32 / 50 / 14 / 31.575 / 45.78venue away: 2.22 vs 3.02 ERA (ok) · opp run factor 0.99 (average) · 33 prior appearances this season
CLETim Herrin (Middle Reliever (High Leverage))1 / 30 / 00 / 01 / 10 / 01 / 00.390 / 11.18
CLEErik Sabrowski (Setup Man)3 / 30 / 00 / 01 / 10 / 00 / 00.631 / 21.62
CLECade Smith (Closer)3 / 69 / 0 (+9.00)1 / 02 / 11 / 01 / 10.231 / 31.57

Hitters: actual / projected (sorted by run impact vs projection)

BatterTeamABH2B3BHRRBIRBBSORun impactSeason xwOBASignal
Angel Martínez (LF)CLE3 / 30 / 10 / 00 / 00 / 10 / 21 / 10 / 11 / 0-1.730.299 below averageprojection too high
Nathaniel Lowe (1B)CLE4 / 32 / 20 / 00 / 10 / 10 / 20 / 21 / 10 / 1-1.550.335 above averagebad day
José Ramírez (3B)CLE5 / 42 / 00 / 00 / 01 / 03 / 02 / 00 / 10 / 11.540.325 above averageprojection too low
Steven Kwan (CF)CLE3 / 51 / 00 / 00 / 00 / 00 / 02 / 02 / 00 / 01.130.328 above averageprojection too low
Travis Bazzana (2B)CLE4 / 41 / 01 / 00 / 00 / 01 / 11 / 00 / 00 / 10.780.299 below averagegood day
Jo Adell (DH)CLE4 / 41 / 10 / 00 / 00 / 02 / 00 / 11 / 01 / 10.330.329 above average—
Austin Hedges (C)CLE1 / 30 / 00 / 00 / 00 / 00 / 00 / 00 / 10 / 1-0.330.28 weak—
Brayan Rocchio (SS)CLE2 / 30 / 00 / 00 / 00 / 00 / 01 / 02 / 10 / 20.330.294 below average—
Chase DeLauter (RF)CLE4 / 51 / 20 / 00 / 00 / 01 / 00 / 11 / 00 / 1-0.140.346 elite—
Full model trace, player evidence, and audit findings

Fundamental evidence entering the pick

SignalHome-away edgeMeaning
Season quality0.161positive favors home; negative favors away
Recent form0.03positive favors home; negative favors away
Starting-pitcher matchup-0.001positive favors home; negative favors away
Composite-0.085positive favors home; negative favors away

Score and confidence evolution

StageAway-home runsConfidenceWhat changed
historical_ml3.71-5.14n/aBase ML historical model prediction
variance_applied4-5n/aDeterministic baseline target (variance factor 1.0)
enhanced_prediction5-40.505Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail)
kpi_layer5-4n/aSavant KPI blend computed and withheld; baseline kept
embedded_savant_run_environment5-4n/aTarget score adjusted by temporal Savant lineup quality versus opposing starter quality
fundamental_edge_target_review5-4n/aRefreshed score target and win probability after Savant/pitcher/team-strength adjustments
capped_target5-4n/aCapped at max 12 realistic runs
simulation_result5-4n/aFinal inning-by-inning simulation result

Official postgame stage attribution

StageBeforeAfterToward final pickWhat changed
variance_applied3.71-5.144-50.429Deterministic baseline target (variance factor 1.0)
enhanced_prediction4-55-42Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail)
kpi_layer5-45-4-0Savant KPI blend computed and withheld; baseline kept
embedded_savant_run_environment5-45-4-0Target score adjusted by temporal Savant lineup quality versus opposing starter quality
fundamental_edge_target_review5-45-4-0Refreshed score target and win probability after Savant/pitcher/team-strength adjustments
capped_target5-45-4-0Capped at max 12 realistic runs
simulation_result5-45-4-0Final inning-by-inning simulation result

Largest player-level adjustments from the ultra-detailed trace

These are pregame model adjustments, not claims about actual postgame player error.

TeamPlayerRoleNet effectLargest change
CLEErik Sabrowskipitcher / Setup Manbetterpredicted_ER -3
CHWHagen Smithpitcher / Starterbetterpredicted_IP -2.8
CHWRandal Grichukbatter / LFworsepredicted_AB 2.5
CLEParker Messickpitcher / Starterworsepredicted_ER 2
CLECade Smithpitcher / Closerbetterpredicted_SO 2
CHWBryan Hudsonpitcher / Middle Reliever (High Leverage)worsepredicted_BB 2
CHWAnthony Kaypitcher / Setup Manworsepredicted_BB 2
CLENathaniel Lowebatter / 1Bbetterpredicted_R 1.697

Structural audit findings

SeverityRuleFindingSubject
infoRECONCILIATION_PROPAGATIONNo score_target_reconciliation step was used for this game.

Cross-game lever tension

Each candidate fix, and exactly which games it would help versus hurt. A lever that repairs one game and breaks two is visible here before it is proposed.

score.variance_multiplier / score.variance_floor (widen run distributions)

Targets: brier_score, calibration_error · 0 helped vs 0 hurt
Would help
  • none
Would hurt / risk
  • none

player.pitcher.v4 form weights / player.pitcher_prior_games

Targets: starter_er_mae, starter_outs_mae · 0 helped vs 1 hurt
Would help
  • none
Would hurt / risk
  • CLE@CHW (hit): starter projection was accurate (ER off 1); reweight risks disturbing it

recent.* / season.* run-mean weighting

Targets: team_run_mae, total_run_mae, accuracy · 1 helped vs 0 hurt
Would help
  • CLE@CHW (hit): team runs off by 5
Would hurt / risk
  • none

Day over day: did it improve or worsen

Compared against packet 20261007. Last recorded change: v15.28.3 (2026-10-07) Audit the confidence blend against the adaptive cap actually in force.

MetricPriorCurrentΔResult
brier_score0.24610.2453-0.000828improved
accuracy0.59650.6106+0.0141improved
team_run_mae2.3862.3982+0.0122regressed
total_run_mae3.56143.5929+0.0315regressed
calibration_error0.1090.1238+0.0148regressed
starter_er_mae1.67361.6402-0.0334improved
starter_outs_mae4.20664.2383+0.0317regressed

The adjustment the system made in response

Status: skipped open rollback monitor.

Luna deep post-mortem (full)

1. Evidence receipt and gaps

All seven source_manifest entries are present and marked loaded:

SourceBytesPurpose
prediction review — /app/output/reports/prediction_review_20261008.json17,218Official outcomes and scoring errors
forensic deep audit — /app/output/reports/PREDICTION_SYSTEM_DEEP_AUDIT_20261008.json45,923Probability, provenance, starter and decision contracts
continuous learning — /app/output/learning/continuous_learning_daily_20261008.json245,469Pipeline stages, calibration, probability lineage, score distribution and starter comparisons
detailed report — /app/output/reports/detailed_20261008.html58,372Game and simulation rendering
ultra detailed player audit — /app/output/reports/20261008_ultra_detailed_player_audit.html3,404,020Player-level prediction trace
structural audit — /app/output/reports/audit_report_20261008.html244,042Invariant findings
integrity revision audit — /app/output/reports/audit_report_20261008_integrity_revision.html126,889Structural audit of post-start revisions

Game-level review: one game is supplied in games[]: CLE@CHW. Its official result is CLE 9, CHW 5. The game record says games_reviewed: 1, hits: 1, misses: 0; the continuous-learning summary says one settled game, also one hit and zero misses. Thus the available game-level result is internally consistent.

Coverage-count contradiction: the same evidence reports expected_games: 1, but canonical_artifacts_loaded: 2, continuous_learning_games: 2, forensic_deep_audit_games: 2, structural_audits_completed: 2, and forensic_deep_audit_games: 2. The causal register describes this as “2/1 games structurally audited.” These counts do not reconcile to the single supplied game record. The pipeline transitions also name TB@NYY, which is absent from games[] and has no supplied score, probability, or game-level audit here. I report that transition as evidence of a coverage/provenance gap, not as a second game that can be independently evaluated.

There are no listed starter comparisons for a second game, and the only player-level trace supplied is for CLE@CHW. I do not infer any missing TB@NYY results or player outcomes.

2. Executive diagnosis

Winner accuracy
Calibration quality
Score accuracy
Starter accuracy
Artifact integrity
Causal issue register — every entry reconciled
  1. score_margin_compression — high, score distribution, CLE@CHW. Evidence: 1/1 predicted margins ≤2; 1/1 actual margins ≥4; mean predicted margin 1.00 versus actual 4.00. Action: check tail coverage and margin MAE across recent out-of-sample slates before widening. Guardrail: a single blowout does not justify widening every score prediction.
  2. single_slate_calibration_instability — high, calibration, CLE@CHW. Evidence: weighted absolute calibration error 0.4950 across one game. Action: watch confidence buckets over the rolling window before changing calibration weight. Guardrail: one slate is far too small to establish a stable calibration curve.
  3. weak_run_model_signal — high, model validation, CLE@CHW. Evidence: home/away/total run-model R² = 0.0021/0.0309/0.0024. Action: treat exact runs as low-confidence; investigate features/target rather than tuning score tails. Guardrail: small positive R² only means beating a mean-only reference; it does not make exact scores reliable.
  4. complete_slate_audit_coverage — info, coverage, CLE@CHW. Evidence says “2/1 games structurally audited.” Action: retain a per-game audit receipt in each report. Guardrail: full audit coverage does not cancel game-level findings. The stated coverage count is internally inconsistent with the one supplied game record and must not be taken as proof that the unprovided game was reviewed here.
  5. simulation_inert_on_slate — info, simulation, CLE@CHW. Evidence: 0 flip candidates and 0 published flips. Action: measure simulation contribution across rolling slates, separating score realization from winner flipping. Guardrail: zero winner flips is not itself a defect and does not mean no score-reconciliation work occurred. The cross-slate evidence separately escalates the recurring simulation issue, discussed below.

3. Every game

CLE@CHW — winner hit, score miss

Prediction and result

Errors

Starter comparison

Pregame edges, confidence and controls

Score path

Important player-level evidence

Audit and cause

4. Miss reconstruction

Game losses: none in the supplied game list. Thus there is no losing pick for which to assign a wrong-winner cause. CLE@CHW is a winner hit and a score miss, not a winner loss. The unexplained TB@NYY transition cannot be reconstructed as a game result from this evidence.

For the score miss in CLE@CHW, the earliest relevant evidence and distinctions are:

Pipeline-stage quality and transitions

All listed stages have one game of measurement; interpret the metrics as one-game observations.

StageWinner hits / accuracyMargin MAETeam-run MAETotal-run MAE
historical_ml0 / 0.05.4292.71455.1472
variance_applied0 / 0.05.0002.5005.000
enhanced_prediction1 / 1.03.0002.5005.000
kpi_layer1 / 1.03.0002.5005.000
embedded_savant_run_environment1 / 1.03.0002.5005.000
fundamental_edge_target_review1 / 1.03.0002.5005.000
capped_target1 / 1.03.0002.5005.000
simulation_result1 / 1.03.0002.5005.000
published_final1 / 1.03.0002.5005.000

5. Cross-game counterfactuals

The supplied lever_tension contains three entries; with only one game, its listed benefits and costs are limited to that game.

  1. score.variance_multiplier / score.variance_floor — widen run distributions
  1. player.pitcher.v4 form weights / player.pitcher_prior_games
  1. recent.* / season.* run-mean weighting

Tempting one-game fixes to avoid: widening every score after the 9–5 result; changing pitcher-form weights based on this single starter comparison; fitting individual hitter weights to the deviations of Lowe or Bazzana without supporting cross-slate evidence; and treating the 0.505 winner probability as proof that confidence should be lowered or raised. Each would overfit sparse evidence or conflict with the supplied lever-tension/guardrail evidence.

6. Data and contract defects

Findings by reported audit severity
Coverage reconciliation

The matrix says the expected game count is 1 while several loaded/audited counts are 2. The supplied game array and games_reviewed are both 1. The “2/1” causal-issue evidence therefore cannot be reconciled from this payload. The extra TB@NYY pipeline transition reinforces, but does not resolve, the discrepancy. Do not call coverage clean solely because all_games_structurally_audited is true.

Probability-lineage audit for the pick side

The published side was away/CLE at 0.505.

  1. Raw model: model_trace reports raw pick probability 0.526027. probability_lineage instead reports raw model pick probability 0.500. These values conflict; the payload does not explain whether they have different definitions.
  2. Calibrated: probability lineage reports calibrated pick probability 0.505, calibration sample size 571, empirical hit rate 0.5499.
  3. Governor: lineage reports governor input 0.526027 and output 0.505. The model trace also says governor applied and governed pick probability 0.505.
  4. Score coherence: reported as 0.505.
  5. Recency: guardrail applied, but discount factor is null. No numerical recency transformation can be verified or inferred.
  6. Published: pick probability 0.505, equal to calibrated, governed and score-coherence values; published_minus_calibrated is 0 and the lineage marks the published probability transformation as matching the calibrated/governed value.

The lineage does not label an unexplained material delta between calibrated/governed probability and published probability. However, the 0.500 versus 0.526027 raw-value conflict is unresolved, and the displayed raw-to-governor-input path has no explicit transformation description in the lineage. This is an observability/contract gap; the JSON does not establish that the final published probability bypassed a recorded calibration or governor transformation.

A separate probability_reversions record reports trained home-win probability 0.653438, blended home probability 0.575938, a blend-stage side change to home, and a published away side at home-win probability 0.495; it says the blend side did not survive publication (overwritten: 1). That material event is recorded in the separate reversions block, but it is not represented as a step in the pick-side probability_lineage. Treat this as an incomplete cross-block trace, not proof of an unrecorded bypass.

Model/process defects versus presentation/artifact concerns

7. Cross-slate persistence

Required structural blocks
Finding streaks — every entry
Escalated findings — established failures, not single-slate noise
  1. Simulation inertness, 11 consecutive slates. Target lever listed: simulation.allow_score; target metrics: team-run MAE and total-run MAE; stated direction: confirm the simulation module is running rather than silently no-oping. This has a concrete code/diagnostic action, not a supported parameter adjustment. The self-assessment identifies a likely structural cause: the same draws are used both to search for a target-realizing play-by-play and estimate the win distribution; early exit can leave only about two selected draws. It recommends an independent, unsteered distribution batch that does not early-exit, feeding the resulting win rate to the distribution-agreement policy. This root-cause description is supplied as a self-assessment, not independently demonstrated by the game receipt.
  2. Calibration instability, 6 consecutive slates. Target levers: confidence.empirical_max_weight, confidence.base_cap, confidence.moderate_cap; metrics: Brier and calibration error; recommended direction: increase empirical shrinkage. Its persistence warrants a bounded shadow experiment. The current one-game bucket is underconfident, while the self-assessment proposes lower caps; this directional conflict argues for shadow comparison and monitoring rather than automatic application.
  3. Weak run-model signal, 6 consecutive slates. Target levers are listed as training.xgb.n_estimators, training.xgb.max_depth, and training.xgb.learning_rate, but param_actionable is false. Target metrics: team-run and total-run MAE. The stated action is to investigate features/target by isolated training backtest, not to force a nightly parameter change. Holdout R² is 0.002415 total, 0.002143 home, 0.030936 away.
Trend directions, stated explicitly
Top-confidence-pick loss streak
Cross-slate bias context

The separate 10-slate bias record does not establish an actionable starter or lineup-run bias:

These are not grounds for changing context.opponent_strength_weight or score.variance_floor on their own.

8. Adjustments for today

Recommendations below are bounded proposals or diagnostics; none is promoted or applied here. Persistent patterns receive priority over the one-game signal.

  1. Persistent calibration instability — shadow experiment.
  1. Persistent simulation inertness — code/diagnostic action, not a parameter move.
  1. Persistent near-zero run-model signal — isolated feature/target backtest, not parameter tuning.
  1. Strongest single-slate driver: compressed margin and under-projected run total — bounded shadow only.

No production change to pitcher weights or a wildcard recent.* / season.* parameter is recommended: the supplied tension gives no net cross-game evidence, and the latter does not name an exact parameter. The self-assessment’s general “lower caps and widen run variance” recommendation is not taken as a direct production instruction because it conflicts with the current observed calibration direction and the one-game score guardrail.

9. Bottom line

Known: CLE@CHW was a correct-winner, wrong-score prediction. The away win probability was 0.505; the pick hit, but CLE was under-projected by four runs and the total by five. Exact run models have near-zero reported holdout R². The game artifact passed its supplied structural checks, while the starter-feed line for Hagen Smith is missing.

Uncertain or defective: only one supplied game can be fully reviewed despite multiple reported coverage counts and a TB@NYY transition. Raw pick probability is reported as both 0.500 and 0.526027. Calibration’s current single observation is underconfident, despite a persistent calibration-instability finding and a conflicting self-assessment recommendation. The magnitude and causes of the score miss cannot be cleanly separated among run-model signal, offense, starter usage and variance from this game alone.

Safest next action: have the operator verify the simulation’s early-exit/draw-distribution path and measure an independent, unsteered win-probability distribution in shadow. This addresses the longest persistent failure without forcing a parameter move or claiming that the single game proves a particular score or winner adjustment.