Audit Detail¶
This page documents the methodology and results for each Track B validation audit. All audits were completed March 7, 2026.
Policy Audit¶
What Was Checked¶
All 16 play policy files used in simulation were audited against published basic strategy charts. The 16 files cover the full combination matrix of:
- Dealer rule: H17, S17
- Doubling: DOA (double on any two), D10 (double on 10/11 only)
- Split rules: DAS (double after split), NDAS
- Surrender: LS (late surrender), NS (no surrender)
For each policy file, every hard total, soft total, and pair-splitting decision was checked against published strategy for the applicable rule configuration.
Results¶
224 blocking checks. 0 failures.
No mismatches found across all 16 policy files.
Counting System Configuration Audit¶
What Was Checked¶
Insurance thresholds for all ten counting systems were verified against published sources and counted against empirical results.
Results¶
Two items required disposition:
| Item | Disposition | Resolution |
|---|---|---|
| Halves count insurance threshold | Confirmed bug | Was coded as TC ≥ 1. Corrected to TC ≥ 3 per published sources. Fixed. |
| Zen count insurance threshold | Source-confirmed | Confirmed at TC ≥ 5 (count-per-deck convention). Primary source citation recorded in counting system file. Empirically verified at 100M rounds. |
All other thresholds confirmed correct against source files (Hi-Lo TC ≥ 3, KO RC ≥ 3, REKO RC ≥ 2, Hi-Opt I TC ≥ 3, Hi-Opt II TC ≥ 3, Omega II TC ≥ 3, Red Seven RC ≥ 2, Ace-Five: never).
Formula Recompute Audit¶
What Was Checked¶
BJW currently uses the following variable-betting variance decomposition in its summary.chapter10 reporting path:
Var(session) = E[b²] · Var(w) + Var(b) · E[w]² + 2 · Cov(b,w) · E[b] · E[w]
This equation is BJW's own implementation choice. It is not presented here as a direct quoted equation from Blackjack Attack.
To verify this, a separate Python script (not part of the simulator) reads the raw per-hand accumulators from simulator output and recomputes every derived metric independently:
Raw accumulators read from results:
- sum_b — sum of all bets
- sum_w — sum of all outcomes per unit
- sum_b2 — sum of squared bets
- sum_w2 — sum of squared outcomes
- sum_bw — sum of bet × outcome products
- count — number of hands
Recomputed from scratch in Python: - E[b] = sum_b / count - E[w] = sum_w / count - Var(b) = sum_b2/count − E[b]² - Var(w) = sum_w2/count − E[w]² - Cov(b,w) = sum_bw/count − E[b]·E[w] - Full variance result for this reporting path - DI = E[b] · E[w] / √Var(session)
Algebraic identities verified:
- DI² = SCORE
- SCORE × N₀ = 1,000,000
- variance = SD² (for all three methodology variants: naive, summary.chapter10, DI-adjusted)
This is a genuine independent recomputation — the Python script derives all metrics from first principles using only the raw accumulator values. It does not call any simulator code.
Results¶
400 blocking checks across 16 result files (8 scenarios × 100M rounds + 1B rounds). 0 failures. Tolerance: 1×10⁻⁶.
This confirms: BJW's variance, SD, DI, SCORE, and N₀ figures are correct given the game data collected. The implementation is verified.
Theory Sanity Matrix¶
What Was Checked¶
A set of properties that any mathematically correct blackjack simulator must satisfy:
Flat EV bands: Flat-betting EV for 6D S17 and 6D H17 falls within accepted published house-edge ranges for those rulesets (reference: Wong, Professional Blackjack; Griffin, The Theory of Blackjack).
Directional invariant: S17 produces better player EV than H17 under otherwise identical conditions.
EV monotonicity: EV per hand increases with true count across TC bins — higher count means higher edge, as theory requires.
Results¶
| Check | Result |
|---|---|
| 6D S17 flat EV within published house-edge band | ✓ Pass |
| 6D H17 flat EV within published house-edge band | ✓ Pass |
| S17 EV > H17 EV (matched conditions) | ✓ Pass |
| Hi-Lo 6D EV monotonically increasing by TC bin | ✓ Pass |
| Hi-Lo 6D S17 EV > flat EV (counting adds edge) | ✓ Pass |
| Hi-Lo 8D EV monotonically increasing by TC bin | ✓ Pass |
| Hi-Lo 1D EV monotonically increasing by TC bin | Explained residual |
7/8 pass. 1 explained residual.
Explained residual — 1D monotonicity at extreme TC: In the 1-deck scenario, EV at TC bin +8 is marginally lower than at TC bin +7. This is a known statistical artifact: at very deep shoe penetration in 1-deck games, the number of hands played at TC ≥ +8 is small enough that sample variance produces occasional inversions even at 1B rounds. This is documented in the known discrepancies log and is consistent with expected behavior. It does not indicate a simulator error.
Scenarios Tested¶
All Track B and Track A audits used these 8 core scenarios, each run at 1 billion rounds:
| Scenario ID | Decks | Dealer | Doubling | DAS | Surrender | Count | Spread |
|---|---|---|---|---|---|---|---|
| 1D H17 Hi-Lo 1-12 I18 | 1 | H17 | DOA | Yes | No | Hi-Lo | 1–12 |
| 2D H17 LS Hi-Lo 1-4 | 2 | H17 | DOA | Yes | Late | Hi-Lo | 1–4 |
| 6D H17 LS Hi-Lo 1-12 I18 | 6 | H17 | DOA | Yes | Late | Hi-Lo | 1–12 |
| 6D H17 Flat | 6 | H17 | DOA | Yes | No | None | Flat 1u |
| 6D S17 Flat | 6 | S17 | DOA | Yes | No | None | Flat 1u |
| 6D S17 Hi-Lo 1-12 I18 | 6 | S17 | DOA | Yes | No | Hi-Lo | 1–12 |
| 8D H17 D10 NDAS NS Hi-Lo 1-4 | 8 | H17 | D10 | No | No | Hi-Lo | 1–4 |
| 8D H17 Hi-Lo 1-4 | 8 | H17 | DOA | Yes | No | Hi-Lo | 1–4 |
All scenarios: 75% penetration, 1 burn card, TC divisor half-deck / cards remaining.