A calibrated, leakage-audited benchmark on 16,754 matches asks whether the two features practitioners reach for next — player identity and match-level conditions — add anything over a strong state model. Measured under an evaluation protocol fixed before the test split was ever read.
Match state is saturating. A gradient-boosted model of within-match state captures almost all of the recoverable-above-marginal structure. The two obvious enrichments are the near-invisible slivers on the right — and neither clears the bar.
Empirical-Bayes shrunk batter + bowler effects on top of state. Real (the CI excludes zero) but below the 1% materiality bar — and it slightly worsens dot/boundary calibration.
A strictly causal per-match latent (the estimate for ball t uses only prior balls of the same match). An order of magnitude smaller; frozen at validation before its one-time test evaluation.
Per-ball outcome NLL on the test split (t20, 1,493 matches), lower is better, with 95% match-level paired-bootstrap intervals. (This is the paper's 11-class task; the companion win-probability leaderboard is binary, so its NLLs sit near 0.49 — a different scale, not a discrepancy.)
| model | test NLL | 95% CI |
|---|---|---|
| B0 — marginal | 1.685 | [1.679, 1.690] |
| B1 — bucketed table | 1.648 | [1.642, 1.653] |
| B2 — regularized logistic | 1.629 | [1.623, 1.634] |
| B3 — gradient-boosted state | 1.614 | [1.609, 1.620] |
The instrument was built to catch its own mistakes before it could flatter them.
A deterministic state core feeds an evaluation harness; every figure, table, and leaderboard number is regenerated from a single JSON — byte-identically.